loop の使い方についての短いまとめ。
詳細は素晴らしくまとまっている http://smpl.seesaa.net/article/29800843.html loop マクロ用法抄を参照のこと。
- C; for int i=0;i
(loop for i from 0 to n ...)
- Perl; foreach my $x (@lst) { ... } 型 ;; "コレクション内繰り返し"
(loop for x in lst ...)
- 何かを集める場合 ;; "集約"
(loop ... collect ...)
- C; for (int i=0;i
(loop for x in lst and i from 0 ...)
- 数列の生成; 等差数列:
(loop repeat 10 for n1 = 1 then (+ 3 n1) collect n1)
- 数列の生成; フィボナッチ数列:
(loop repeat 10 for x = 1 then y and y = 1 then (+ x y) collect x)
- トリボナッチ数列:
(loop repeat 10 for n1 = 1 then n2 and n2 = 1 then n3 and n3 = 2 then (+ n1 n2 n3) collect n1)
以下「数学ガール」より。
- ハーモニックナンバー
(loop repeat 10 for n from 1 sum (/ 1 n)) ;; => 2436559/720720 ;; float を使うと少数にできる
- 2^n の和は n を大きくしても 1 を超えない
(loop repeat 10 for n from 1 sum (/ 1 (expt 2 n)))