id:lethevert:20050902:p2より。
id:SaitoAtsushi:20050902に、Scheme版がありますけど、Clean版と変わらないな。やっぱり、JavaScriptだからこう書けるのか?
というわけで、やってみました。
(define (fix g) (begin (define (f x) (f x)) (set! f (g f)) f))
どちらにせよオリジナルのJavaScript版そのままなカンジ。
LispやJavaScriptは関数型に数えられることもあるけど、原理主義に陥っていないところが魅力のひとつかもしれない。