
递归,是一个过程用同一规则处理更小或更简单的同类问题,再把结果逐层返回。计算文件夹总大小时,可以先加上其中各文件的大小;遇到子文件夹,就再次使用同一规则。直到某个文件夹不再含子文件夹,计算才开始向外合并。
它不同于普通重复。重复可以把同一动作做许多遍,递归则要求当前问题内部包含可用同一方式处理的子问题。它也不同于反馈回路:反馈让结果改变下一次行动,递归关注的是问题结构怎样嵌套。
递归必须有终止条件,并且每次进入都应更接近它;否则过程会无限展开或耗尽资源。这个概念的重要性不只在程序设计。家族关系、语言句法和分层推理中,都可能出现同一种关系进入更深层级。递归让有限规则生成复杂结构,但复杂性成立的前提,是层级仍有边界。
了解 Geoffrey Chen 的更多信息
订阅后即可通过电子邮件收到最新文章。