显然,对于 Python 是否需要尾部调用优化 (TCO) 一直存在很大争议。当有人向 Guido 发送了一份 SICP 副本 http://drj11.wordpress.com/2009/04/30/python-tail-call-optimisation/,因为他没有“明白”。我和我在同一条船上Guido https://en.wikipedia.org/wiki/Guido_van_Rossum。我理解尾调用优化的概念。我只是想不出Python真的有什么理由needs it.
为了让我更容易理解,使用 TCO 可以大大简化的代码片段是什么?
就我个人而言,我非常重视尾调用优化;但主要是因为它使递归与迭代一样高效(或者使迭代成为递归的子集)。在简约语言中,您可以在不牺牲性能的情况下获得巨大的表达能力。
在“实用”语言(如 Python)中,OTOH,您通常对几乎所有可以想象的情况都有很多其他结构,因此它不太重要。当然,考虑到不可预见的情况,拥有它总是一件好事。
就我个人而言,我非常重视尾调用优化;但主要是因为它使递归与迭代一样高效(或者使迭代成为递归的子集)。在简约语言中,您可以在不牺牲性能的情况下获得巨大的表达能力。
在“实用”语言(如 Python)中,OTOH,您通常对几乎所有可以想象的情况都有很多其他结构,因此它不太重要。当然,考虑到不可预见的情况,拥有它总是一件好事。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)