Skip to content

Instantly share code, notes, and snippets.

@burke
Created February 22, 2009 07:10
Show Gist options
  • Save burke/68376 to your computer and use it in GitHub Desktop.
Save burke/68376 to your computer and use it in GitHub Desktop.
def Y
lambda { |f| f.call(f) }.call(
lambda do |g|
yield(lambda { |*n| g.call(g).call(*n) })
end)
end
Y { |this| lambda { |n| n == 0 ? 1 : n * this.call(n - 1) } }.call(12)
#=> 479001600
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment