scrambled
Concept

Z combinator

Modified just now
Books JourneyProgramming Language Theory Statuslearning Tags
  • lambda calculus
  • semantics

Formula: λf. (λx. f (λv. x x v)) (λx. f (λv. x x v))\lambda f.\ (\lambda x.\ f\ (\lambda v.\ x\ x\ v))\ (\lambda x.\ f\ (\lambda v.\ x\ x\ v))

  • Details

    fix g[fg](λx. f (λv. x x v)) (λx. f (λv. x x v))(λx. g (λv. x x v))(λx. g (λv. x x v))[xλx. g (λv. x x v)]g (λv. x x v)g (λv. (λx. g (λv. x x v)) (λv. (λx. g (λv. x x v)) v)=g (λv. (fix g) v)\begin{aligned} \text{fix}\ g &\to [f \mapsto g] (\lambda x.\ f\ (\lambda v.\ x\ x\ v))\ (\lambda x.\ f\ (\lambda v.\ x\ x\ v )) \\ &\to (\lambda x.\ g\ (\lambda v.\ x\ x\ v)) (\lambda x.\ g\ (\lambda v.\ x\ x\ v)) \\ &\to [x \to \lambda x.\ g\ (\lambda v.\ x\ x\ v)]g\ (\lambda v.\ x\ x\ v) \\ &\to g\ (\lambda v.\ (\lambda x.\ g\ (\lambda v.\ x\ x\ v))\ (\lambda v.\ (\lambda x.\ g\ (\lambda v.\ x\ x\ v))\ v) \\ &= g\ (\lambda v.\ (\text{fix}\ g)\ v) \end{aligned}

    In Call by value, fix g\text{fix}\ g doesn't diverge as there a thunk wrapping around the nested fix g\text{fix}\ g.