gpt4 book ai didi

python - Python 不需要 Y-Combinator 吗?

转载 作者:太空狗 更新时间:2023-10-30 01:55:33 26 4
gpt4 key购买 nike

在尝试理解 Y-Combinator 一个小时后...我终于明白了,但后来我意识到没有它也可以实现同样的事情...虽然我不确定我是否完全理解它目的。

例如。 Y 组合器的阶乘

print (lambda h: (lambda f:f(f))(lambda f: h(lambda n: f(f)(n))))(lambda g: lambda n: n and n * g(n-1) or 1)(input())

通过引用另一个 lambda 中的函数进行阶乘

print (lambda f,m:f(f,m))((lambda g,n: n and n * g(g,n-1) or 1),input())

谁能告诉我 python 中的 Y-Combinator 是否有用途?

最佳答案

Y 组合子的目的是演示如何仅使用匿名函数编写任意递归函数。但几乎所有发明的语言都允许命名函数!换句话说,它主要是学术兴趣。当然,您可以在 Python 中更“自然地”定义阶乘:

def fac(n):
return n * fac(n-1) if n else 1

Y 组合器在实践中真正有用的唯一语言是“图灵 tarpit”语言,例如 Unlambda。在编写实际程序时,即使是 Lisp/Scheme 用户通常也不会使用 Y 组合器。

关于python - Python 不需要 Y-Combinator 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9347984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com