【发布时间】:2012-04-26 17:16:04
【问题描述】:
我相信所有具有迭代逻辑的问题都可以使用迭代来解决,但是我们可以使用递归来解决任何问题吗?递归总能代替迭代吗?如果可以,请为您的答案提供证据。还假设我们有一个无限堆栈或者我们在图灵机上运行程序。我不在乎这个证明是不是理论上的证明。 (这就是我提到图灵机的原因)
【问题讨论】:
-
有人可能会在这里纠正我,但某些语言(“纯函数式语言”)不是完全基于递归吗?例如 Lisp 语言?
-
@TonyR Lisp 语言根本不是纯粹的功能性语言。
-
那么“函数式语言”呢?
-
@TonyR Scheme 不是纯粹的函数式。但是你是对的,所有的迭代构造都是基于递归的,并且由于尾递归得到了优化,迭代的效率是等效的。
标签: algorithm recursion iteration