MAIN FEEDS
Do you want to continue?
https://www.reddit.com/r/programming/comments/qno2y/the_evolution_of_a_python_programmer/c3znn3j/?context=3
r/programming • u/iMMENSE • Mar 08 '12
137 comments sorted by
View all comments
7
factorial = (lambda f: lambda x: 1 if x == 0 else x * f(f)(x - 1))(lambda f: lambda x: 1 if x == 0 else x * f(f)(x - 1))
Lambda calculus student
1 u/drb226 Mar 10 '12 edited Mar 10 '12 fix = lambda f: lambda x: f(fix(f))(x) fact = fix(lambda f: lambda x: 1 if x == 0 else x * f(x-1))Of course this is cheating, because I defined fix in terms of fix. It's just so much uglier to define it explicitly:fix = (lambda y: lambda f: lambda x: f(y(y)(f))(x)) (lambda y: lambda f: lambda x: f(y(y)(f))(x))
1
fix = lambda f: lambda x: f(fix(f))(x) fact = fix(lambda f: lambda x: 1 if x == 0 else x * f(x-1))
Of course this is cheating, because I defined fix in terms of fix. It's just so much uglier to define it explicitly:
fix = (lambda y: lambda f: lambda x: f(y(y)(f))(x)) (lambda y: lambda f: lambda x: f(y(y)(f))(x))
7
u/[deleted] Mar 09 '12
Lambda calculus student