也许你我都难以理解,为什么有人对她痴迷疯狂,铭记在心中不说,还要刻在身上:
她让人绞尽脑汁,也琢磨不定!她让人心力憔悴,又百般回味!
她,看似平淡,却深藏玄机!她,貌不惊人,却天下无敌!
她是谁?
她就是 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的正确结果