Skip to content

Instantly share code, notes, and snippets.

@jimweirich
Created September 18, 2011 22:11
Show Gist options
  • Save jimweirich/1225613 to your computer and use it in GitHub Desktop.
Save jimweirich/1225613 to your computer and use it in GitHub Desktop.
Y Combinator Demo in CoffeeScript
# Y Combinator Demo in CoffeeScript
#
# Run with: coffee y.coffee
p = console.log
fact = (f) ->
(n) ->
if n==0
1
else
n*f(n-1)
y = (fun) ->
((g) -> g(g)) (g) ->
(n) ->
fun(g(g))(n)
p y(fact)(0)
p y(fact)(5)
p y(fact)(10)
p y(fact)(100)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment