【发布时间】:2010-10-23 21:34:34
【问题描述】:
函数式语言导致使用递归来解决很多问题,因此其中许多执行尾调用优化 (TCO)。 TCO 导致从另一个函数(或自身,在这种情况下,此功能也称为尾递归消除,它是 TCO 的一个子集)调用一个函数,作为该函数的最后一步,不需要新的堆栈帧,从而减少开销和内存使用。
Ruby 显然从函数式语言中“借用”了一些概念(lambda、map 等函数等),这让我很好奇:Ruby 是否执行尾调用优化?
【问题讨论】:
标签: ruby functional-programming tail-recursion