Skip to content

Y combinator

Y combinator

λf.(λx.f(x x)) (λx.f(x x))\lambda f.(\lambda x.f(x~x))~(\lambda x.f(x~x))

simple example:

(λx.x x) (λx.x x)(\lambda x.x~x)~(\lambda x.x~x)

  (λ(λx.x x).(λx.x x) (λx.x x)) (λx.x x)\rarr ~~(\lambda (\lambda x.x~x).(\lambda x.x~x)~(\lambda x.x~x))~(\lambda x.x~x)

  (λx.x x) (λx.x x)\rarr ~~(\lambda x.x~x)~(λx.x~x)

general example:

rec f=f(rec f)=f(f(f(...rec~f = f(rec~f)\\ = f(f(f( ...

a definition of “rec” in lambda calculus (y combinator):

λf.(λx.f(x x)) (λx.f(x x))\lambda f.(\lambda x.f(x~x))~(\lambda x.f(x~x))