> nobsunさん
> > fixpoint g = (\y -> g (\ x -> psi y y x))
> >              (PSI (\ y -> g (\ x -> psi y y x)))
>   ...
> >           すなわち、 
> >                 g (fixpoint g)
> 
>   前者の fixpoint が g (fixpoint g) を満たすことは導けますが
> 同じ定義といえるんでしょうか。例えば
> f(x) = x mod p と g(x) = x**p mod p (p は素数とする)
> で f と g は結果的には一致いますが定義としては違うという
> 気がします。上記にもそういう感じはないですか。

その意味では、違う定義でしょう。
ML では、y f = f (y f) のような定義はできないので、
巧妙に同等の定義が可能なような工夫がされています。
それが逆にわかりにくい原因だと思います。

--nobsun

--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/