memoizeと不動点
[id:lethevert:20050902:p2]
[id:SaitoAtsushi:20050903]
(define (fix g) (begin (define (f x) (f x)) (set! f (g f)) f))
やっぱり、Schemeだったら書けるんですねぇ。
でも、「(set! f (g f))」が、あー、という感じ。なんか、代入していることがばればれな感じですね。仕方ないですけど。
JavaScriptの「f = G(f)」という書き方が、宣言的な表現に見えることが気に入っているんですよね。
-
-
- -
-
Cleanでがんばってみた。
fix g # f = fix g # f = g f = f
「f = fix g」が・・・