(do (《節》
《節
》) (《終了条件》《式
》
《式
》)《本体》) 【特殊フォーム】
各 《節》 は次のいずれかの形を取る.
do式は以下のように実行される.
例:
(do ((x '(1 3 5 7 9) (cdr x))
(sum 0))
((null? x) sum)
(set! sum (+ sum (car x))))25
(dolist (《変数》《リスト式》[《結果式》])《本体》) 【マクロ】
dolist式はまず 《リスト式》 を評価する. その値はリストでなければならない. その各要素を順に《変数》 の値として要素ごとに 《本体》 を実行する. 最後に 《結果式》 を評価し,その値を返す. 《結果式》 が与えられない時は ()を返す. 次の do式と等価である.
(do ((TEMP 《リスト式》 (cdr TEMP)))
((null? TEMP) [《結果式》])
(let ((《変数》 (car TEMP)))
《本体》))
ここで,局所変数 TEMPは dolist式の中に現れない変数とする. (dotimes (《変数》《整数式》[《結果式》])《本体》) 【マクロ】
dotimes式はまず 《整数式》 を評価する. その値は整数でなければならない.以上 《整数式》 の値未満の整数を順に 《変数》 の値として各整数ごとに 《本体》 を実行する. 最後に 《結果式》 を評価し,その値を返す. 《結果式》 が与えられない時は ()を返す. 次の do式と等価である.
(let ((TEMP 《整数式》))
(do ((《変数》 0 (1+《変数》)))
((>= 《変数》TEMP) [《結果式》])
《本体》)
ここで,局所変数 TEMPは dotimes式の中に現れない変数とする.