Python lambda:纯正的 λ 演算味儿
最近看了一下 λ 演算。比如说,众所周知的 λ 演算里没有 a = b,赋值都靠函数参数来搞定。而 Python 也不允许你在 lambda 里写赋值操作,如果学习过 λ 演算,写 Python 的 lambda 其实感觉还行,至少不会说它难用。
看的时候顺便整了个活,Y 组合子。https://gist.github.com/abersheeran/80709d4ffd7e83c1206dbcc8df11d4d5
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))