是递归比迭代更通用吗?
对我来说,迭代意味着使用除子程序调用之外的语言结构进行重复控制(比如循环结构和/或显式) goto's),而递归意味着使用子程序调用获得重复控制)。这两个更普遍吗?
答案 0 :(得分:2)
投票结束可能会促使基于意见的回应;我基于意见的回答是:递归更普遍,因为:
相反,迭代往往是一个特定的语言级构造,只允许直接线性遍历。
答案 1 :(得分:1)
就基于意见而言,最合理的答案是递归和迭代都不比另一种更通用。一个语言可以是图灵完成递归但没有迭代(最小的Lisps就是这样),一个语言也可以是图灵完成迭代但没有递归(早期版本的Fortran不支持递归)。递归和迭代都被广泛使用。迭代可能更常用,因为对于每个学习使用像Lisp或Haskell这样的程序编程的人来说,可能有十几个人用Java或Visual Basic学习编程 - 但我不认为“最常用的”是“general”的好同义词。