Lisp Scheme Part21
■ このスレッドは過去ログ倉庫に格納されています
0763デフォルトの名無しさん
2008/05/05(月) 23:29:44なるほど、named letってのがあるんですか
しかし素直にfもこのform内で束縛してしまおうとすれば余分な引数(fはfoo内で変化しない)が増えて
foo2の呼び出しが3引数になってしまうのが嫌ですね
かといって以下のコードのようにletを入れ子にするのもダサいですし
(define (foo from to)
(let ((f (if (< from to)
- +)))
(let foo2 ((n to)
(r ()))
(if (= n from)
(cons from r)
(foo2 (f n 1) (cons n r))))))
>>760
処理系はgaucheで、見易さ優先でおながいします
この例だと末尾再帰の最適化さえあれば速度に大差はでない気がするので
■ このスレッドは過去ログ倉庫に格納されています