编写一个 LISP 代码,从 10 个值的列表中打印偶数

问题描述 投票:0回答:1

我是 lisp 语言的初学者所以请告诉我如何制作 10 个变量的 lisp 并从列表中打印偶数我试试这个

(write (list 1 2 3 4 5 6 7 8 9 10))
terpri

lisp
1个回答
0
投票

您可以使用

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))
© www.soinside.com 2019 - 2024. All rights reserved.