dolist
dolist
是一个循环宏,用于轻松遍历列表。最简单的用途之一是:
CL-USER> (dolist (item '(a b c d))
(print item))
A
B
C
D
NIL ; returned value is NIL
请注意,由于我们没有提供返回值,因此返回 NIL
(并且将 A,B,C,D 打印到*standard-output*
)。
dolist
也可以返回值:
;;This may not be the most readable summing function.
(defun sum-list (list)
(let ((sum 0))
(dolist (var list sum)
(incf sum var))))
CL-USER> (sum-list (list 2 3 4))
9