Skip to content

Instantly share code, notes, and snippets.

@abersheeran
Created April 6, 2021 03:11
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save abersheeran/80709d4ffd7e83c1206dbcc8df11d4d5 to your computer and use it in GitHub Desktop.
Save abersheeran/80709d4ffd7e83c1206dbcc8df11d4d5 to your computer and use it in GitHub Desktop.
Y combinator. Python lambda.
Y = lambda g: (lambda f: g(lambda arg: f(f)(arg))) (lambda f: g(lambda arg: f(f)(arg)))
if __name__ == "__main__":
fib = Y(lambda f: lambda n: (1 if n < 3 else f(n-1) + f(n-2)))
print(fib(10))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment