- 316 名前:デフォルトの名無しさん mailto:sage [04/09/16 18:15:12]
- >>315
今度はOK。つうか、煩雑で最初はよく分からんかった。 分かりやすいよう、遅延評価に直せるところを書き直してみた。 (かえって分かりづらい?) やっぱりマクロのほうが分かりやすいと思う。 ;;遅延評価版 (define make-function (lambda (operator null-value) (lambda (list0) (if (null? list0) null-value (operator (delay (atom? (car list0))) (delay ((make-function operator null-value) (cdr list0)))))))) (define has-atom? (make-function (lambda (a b) (or (force a) (force b))) #f)) それにしても、関数型言語方面の人が「Lispで遅延評価など書いておれるか!」と言ってるけど 気持ちがわかったような気がする。やっぱり煩雑だよね、これ。
|

|