CommonLisp Scheme Part11
■ このスレッドは過去ログ倉庫に格納されています
0316デフォルトの名無しさん
NGNG今度は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で遅延評価など書いておれるか!」と言ってるけど
気持ちがわかったような気がする。やっぱり煩雑だよね、これ。
■ このスレッドは過去ログ倉庫に格納されています