制御構造::CommonLisp

3. 制御構造

3.4 繰り返しのための機能

もっとも一般的かつ強力なものとして,dodo*という組み込みマクロ.
  • doの一般形
(do ((変数1 初期値1 ステップ1)
     ...
     (変数m 初期値m ステップm))
    (終了条件 式...式)
    式1
    ...
    式n)

do,do*の解釈

(do ((変数1 初期値1 ステップ1)
     (変数2 初期値2 ステップ2)
     ...
     (変数2 初期値2 ステップ2))
    (条件 出口 ...)
  本文1
  ...
  本文n)

(prog (変数1 変数2 ... 変数n)
   (setq 変数1 初期値1)
   (setq 変数2 初期値2)
   ...
   (setq 変数n 初期値n)
   (while ((not 条件)
           (return (progn 出口 ...)))
     本文1
     ...
     本文n
     (setq 変数1 ステップ1)
     (setq 変数2 ステップ2)
     ...
     (setq 変数n ステップn)))
最終更新:2011年08月02日 13:55