我一直在学习F#,它开始影响我在编写C#程序时的思维方式。为此,我一直在使用递归,当我觉得结果提高了可读性时,我无法想象它会出现堆栈溢出。
这让我不禁要问,编译器是否能够自动将递归函数转换为等效的非递归形式?
发布于 2013-06-27 20:07:06
小心踩。
答案是肯定的,但不是总是,也不是所有的。这是一种使用几个不同名称的技术,但您可以在这里和维基百科上找到一些非常明确的信息。
我更喜欢“尾叫优化”这个名字,但也有一些人会混淆这个词。
尽管如此,有几件重要的事情需要认识到:
https://softwareengineering.stackexchange.com/questions/202983
复制相似问题