# "Do U know Y this works?" U = lambda f: f(f) Y = lambda f: lambda n: f(Y(f))(n) @U def fact(g): return lambda n: (n < 2) and 1 or n * g(g)(n - 1) print(fact(5)) @Y def fib(g): return lambda n: (n >= 2) and g(n - 1) + g(n - 2) or n print(fib(6))
# "Do U know Y this works?" U = lambda f: f(f) Y = lambda f: lambda n: f(Y(f))(n) @U def fact(g): return lambda n: (n < 2) and 1 or n * g(g)(n - 1) print(fact(5)) @Y def fib(g): return lambda n: (n >= 2) and g(n - 1) + g(n - 2) or n print(fib(6))
Comments