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