显然,关于 Python 是否需要尾调用优化 (TCO) 引发了一场大争论。当有人 shipped Guido a copy of SICP ,因为他没有“明白”。我和 Guido 在同一条船上.我了解尾调用优化的概念。我只是想不出 Python 真正需要它的任何原因。
为了让我更容易理解,使用 TCO 可以大大简化的代码片段是什么?
最佳答案
就我个人而言,我非常重视尾调用优化;但主要是因为它使递归与迭代一样有效(或使迭代成为递归的子集)。在极简语言中,您可以在不牺牲性能的情况下获得强大的表达能力。
在“实用”语言(如 Python)中,OTOH,对于几乎所有可以想象的情况,您通常都有很多其他结构,因此它不那么重要。当然,考虑到不可预见的情况,拥有它总是一件好事。
就我个人而言,我非常重视尾调用优化;但主要是因为它使递归与迭代一样有效(或使迭代成为递归的子集)。在极简语言中,您可以在不牺牲性能的情况下获得强大的表达能力。
在“实用”语言(如 Python)中,OTOH,对于几乎所有可以想象的情况,您通常都有很多其他结构,因此它不那么重要。当然,考虑到不可预见的情况,拥有它总是一件好事。
关于python - 向我解释尾调用优化有什么大不了的,为什么 Python 需要它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/890461/