Python lambda实现Y组合子

Python lambda实现Y组合子

也许你我都难以理解,为什么有人对她痴迷疯狂,铭记在心中不说,还要刻在身上:

她让人绞尽脑汁,也琢磨不定!她让人心力憔悴,又百般回味!

她,看似平淡,却深藏玄机!她,貌不惊人,却天下无敌!

她是谁?

她就是 Y 组合子:Y = λf.(λx.f (x x)) (λx.f (x x)) ,不动点组合子中最著名的一个。

原文出处

python 利用Y算子实现递归阶乘函数

1
((lambda S : (lambda x: (S(lambda y: x(x)(y))))(lambda x: (S(lambda y: x(x)(y)))))(lambda f:lambda n: 1 if(n==0) else (n*f(n-1))))(10)

复制此段代码到python shell可以看到阶乘10的正确结果

评论