繰り返し(do) - lisp-cookbook-ja/common-lisp GitHub Wiki
繰り返し(do)
繰り返し毎に変化する変数を複数使うことができます。
(do ((変数1 初期値1 更新方法1)
(変数2 初期値2 更新方法2)
・・・
(変数n 初期値n 更新方法n))
(終了条件 [戻り値])
式 ・・・ )
初期値1000で10%増加する a に
初期値 300で30%増加する b が勝つのは何ターン後?
(do ((a 1000 (* a 1.1))
(b 300 (* b 1.3))
(y 0 (1+ y)))
((> b a) y))
;=> 8
というように、式を書かないで済ますことも多い。