letrecで階乗。んー。letrecって名前付きletと何か違う?
参考
7. 繰り返し
http://www.shido.info/lisp/scheme7.html
Y-Combinatorで階乗。
【Scheme】Y-Combinator(Yコンビネータ/不動点演算子)
http://ameblo.jp/valvallow/entry-10182574504.html
名前付きletで階乗。
【scheme】再帰だけでなくループできるのか
http://ameblo.jp/valvallow/entry-10186037975.html
(define fact-letrec (lambda (n) (letrec ((iter (lambda (counter result) (if (= counter 1) result (let ((m (- counter 1))) (iter m (* result m))))))) (iter n n)))) (fact-letrec 5);;=> 120 |
【scheme】再帰だけでなくループできるのか http://ameblo.jp/valvallow/entry-10186037975.html
名前付きlet(define loop-fact (lambda (n) (let loop ((count n)(result n)) (if (= count 1) result (let ((m (- count 1))) (loop m (* result m))))))) (loop-fact 5);;=> 120 |
0 件のコメント:
コメントを投稿