# Better names due to Jim Weirich: http://vimeo.com/45140590 def (Y improver) ((fn(gen) gen.gen) (fn(gen) (fn(n) ((improver gen.gen) n)))) factorial <- (Y (fn(f) (fn(n) (if zero?.n 1 (n * (f n-1)))))) prn factorial.5