dolist

Title
dolist
Type
Macro
Arguments
dolist (VAR LISTFORM &optional (RESULTFORM ''())) &body BODY
Package
lisp
Section
制御構造
File
evalmacs.l
リストの長さ分だけ繰り返しを行います。

  (dolist (<変数> <リスト式> <値>)
    <式1> ... <式n>)

まず<リスト式>を評価する。その後リストの要素ごとに変数をその要素に
バインドして,本体の<式1>〜<式n>までを評価する。本体式の評価
が全ての要素に対して終わると,<値>を評価し,dolistの値として返す。
また<値>は省略でき,その場合はdolistの値はnilである。

dolist式の一般形は,
  
  (do* ((temp <リスト式> (cdr temp))
        (<変数> (car temp) (car temp)))
      ((endp temp) <値>)
    <式1>
    ...
    <式n>)
  
と同値である。

使用例:
  (let ((result nil))
    (dolist (item '("Lois" "Charley" "David") (nreverse result))
      (push (length item) result)))
  => (4 7 5)