我是 lisp 语言的初学者所以请告诉我如何制作 10 个变量的 lisp 并从列表中打印偶数我试试这个
(write (list 1 2 3 4 5 6 7 8 9 10))
terpri
您可以使用
list
或引述来创建列表:
(list 1 2 3 4 5 6 7 8 9 10)
'(1 2 3 4 5 6 7 8 9 0 10)
要过滤掉非偶数元素,可以使用
remove-if-not
、remove-if
或loop
宏:
(remove-if-not #'evenp '(1 2 3 4 5 6 7 8 9 10))
(remove-if #'oddp '(1 2 3 4 5 6 7 8 9 10))
(loop for x in '(1 2 3 4 5 6 7 8 9 10)
when (evenp x)
collect x)
全三回
(2 4 6 8 10)
要打印列表的元素,您可以使用
dolist
遍历列表:
(setf my-list (remove-if-not #'evenp '(1 2 3 4 5 6 7 8 9 10)))
(dolist (x my-list) (print x))
或者,您可以使用
loop
宏:
(loop for i in my-list
when (evenp i)
do (print i))