虽然在Java和Ruby等命令式语言中,我们通常使用迭代并避免使用递归,部分原因是由于堆栈溢出的风险,同时也是因为这是这些语言中大多数程序员习惯的编程风格。
现在我知道,严格来说,在这些语言中没有必要使用递归:无论情况有多复杂,都可以通过某种方式用迭代来代替递归。在此,“必要”意味着以下内容:
您能否想到任何特定的代码示例,在这些语言中递归比迭代更好(出于清晰、效率或其他原因),以至于您仍然使用递归,并转换为迭代将会有很大的损失?
答案中已经多次提到过递归遍历树:对于您特定的使用场景,递归与使用库定义的迭代器相比有何优势?