09/02/08 13:03:49
>>430,431
ありがとう。とても参考になりました。
let recは言語組み込みのYコンビネータみたいなもんらしいですね
無事できあがったYコンビネータ
type X = Psi_inv of (X -> (int -> int));;
let psi (Psi_inv f) = f;;
let Y g =
let h y = g(fun x -> (((psi y) y) x)) in
h(Psi_inv(h));;
(Y (fun f x -> if x=0 then 1 else x * f(x - 1))) 10;;
しかし、単純にF#に翻訳しただけなので
理解したとは言い難い・・