【发布时间】:2015-07-07 15:41:29
【问题描述】:
我最近了解了 Haskell 中的尾调用优化。我从以下帖子中了解到这不是 javascript 的功能:
javascript 的设计中是否有一些固有的东西使得尾调用优化特别困难?为什么这是像 haskell 这样的语言的主要功能,但现在才作为某些 javascript 引擎的功能进行讨论?
【问题讨论】:
-
我认为 ES6 会提供它。
-
是的,我相信你是对的。我更想知道为什么它只是现在被添加为一项功能?
-
参见this article 解释尾调用优化的困难。是的,它肯定会在 ES6 中实现。
-
最大的区别在于 TCO 在 haskell 中是必要,而在其他语言中它只是增加编译器复杂性的一个特性。
-
另外,海量递归也会遇到调用栈限制,默认很小。我认为 JS(从 ES5 开始)过去并不是主要针对递归。
标签: javascript recursion tail-recursion tail-call-optimization