【发布时间】:2019-11-25 20:30:01
【问题描述】:
函数接受一个正数并创建一个介于 0(包括)和作为参数传递的数字(不包括)之间的所有数字的列表。默认为 100
(defun list-numbers (&optional (n 100))
(mapcar #'abs (make-list n :initial-element (- n 1))))
如果你想看结果https://ideone.com/Jbz5u3
(99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99)
但我的目标是创建一个简单的列表,初始元素以 99 到 0 的值开始
(99 98 97 96 95 94 93 92 91 90 89 88 87 86.... 9 8 7 6 5 4 3 2 1 0)
【问题讨论】:
-
make-list是一个普通函数;(- n 1)表达式是一个普通的参数表达式,它被简化为传递给make-list的单个值;在这种情况下99。make-list创建一个列表,其中填充了此初始值的重复。可能它最常用于用零填充列表,nil或t。 -
你说得对,再次感谢
标签: lisp common-lisp