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