let Y := map f to let g := map x to f(x(x)); in g(g); FACT := map f to map n to if n = 0 then 1 else n * f(n - 1); in (Y(FACT))(3)