- 217 名前:209 mailto:sage [2005/06/03(金) 20:23:37 ]
- いろいろな方にベンチを実行していただき,ありがとうございます.大変参考
になりました. ところで,おまけとして,ラムダ式による遅延評価版を書いてみました. (参考)www.shiro.dreamhost.com/scheme/wiliki/wiliki2.cgi?Scheme%3a%a4%bf%a4%e9%a4%a4%a4%de%a4%ef%a4%b7%a4%d9%a4%f3%a4%c1 ;;;竹内関数 aka たらいまわしべんち (or 'Common 'Emacs) Lisp ;;;遅延評価版 (defun tarai (x y z) (if (<= (funcall x) (funcall y)) (funcall y) (tarai (lambda () (tarai (lambda () (- (funcall x) 1)) y z)) (lambda () (tarai (lambda () (- (funcall y) 1)) z x)) (lambda () (tarai (lambda () (- (funcall z) 1)) x y))))) こちらだと,引数が12 だとあっという間に終わってしまいますので,数字を 変えました. (tarai (lambda () 192) (lambda () 96) (lambda () 0)) => 192 先ほどの条件で,xyzzy だと13秒程度でした.いささか極端な例とは言え,遅 延評価のありがたみを痛感します.
|

|