http://en.wikipedia.org/wiki/Lambda_calculus
http://en.wikipedia.org/wiki/Fixed_point_combinator


bir fonksiyonun fixed point combinator olmasi icin (fix f) == (f (fix
f)) olmasi lazim imis.

fix fonksiyonunu lambda calculus seklinde yazalim:

(\z.z z z z z z z z z z z z z z z z z z z z) (\P u t t i n g S c h e m
e t o W o r k ! . ! (\b . W o r k W o r k W o r k W o r k W o r k !
b))

veya (\P u t t i n g S c h e m e t o W o r k ! . ! (\b . W o r k W o r
k W o r k W o r k W o r k ! b)) ifadesine kisaca X dersek:

(\z.z z z z z z z z z z z z z z z z z z z z) X


yani (fix f) su oluyor:

(\z.z z z z z z z z z z z z z z z z z z z z) X f

== (beta)
X X X X X X X X X X X X X X X X X X X X f

== (ilk X'i tam yazalim)
(\P u t t i n g S c h e m e t o W o r k ! . ! (\b . W o r k W o r k W
o r k W o r k W o r k ! b)) X X X X X X X X X X X X X X X X X X X f

== (beta)
f (\b . X X X X X X X X X X X X X X X X X X X X f b)

== (eta)
f (X X X X X X X X X X X X X X X X X X X X f)

Buradan da (fix f) == (f (fix f)) cikiyor.

--
Mehmet

_______________________________________________
cs-lisp mailing list
cs-lisp@cs.bilgi.edu.tr
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap