- 220 名前:デフォルトの名無しさん mailto:sage [2005/06/04(土) 13:31:58 ]
- 無いね。z だけ遅延させるならこんな感じ?
(defun tarai (x y z) (labels ((tarai-1 (x y fz) (if (<= x y) y (let ((z (funcall fz))) (tarai-1 (tarai-1 (1- x) y (lambda () z)) (tarai-1 (1- y) z (lambda () x)) (lambda () (tarai-1 (1- z) x (lambda () y)))))))) (tarai-1 x y (lambda () z))))
|

|