Answers:
在1920年代和1930年代,人们试图弄清楚“有效地计算功能”是什么意思(请记住,周围没有通用的计算机,而计算是人为完成的)。
提出了“可计算”的几个定义,其中三个最为人所知:
事实证明,这些定义了同一类的数论函数。由于递归函数比Turing机器更旧,并且甚至没有立即接受甚至更老的 -calculus作为可计算性的适当概念,因此形容词“递归”被广泛使用(递归函数,递归集,递归可枚举集等)。
后来,有一项由Robert Soare推广的努力,将“递归”更改为“可计算”。因此,如今我们谈论可计算的功能和可计算的集合。但是,许多较旧的教科书和许多人仍然喜欢“递归”术语。
历史这么多。从纯数学的角度来看,我们还可以问递归对于计算是否重要?答案是非常明确的“是!”。递归是通用编程语言的基础(即使while
循环也while p do c
与相同,所以循环只是递归的一种形式if p then (c; while p do c)
),并且许多基本数据结构(如列表和树)都是递归的。在计算机科学中,特别是在可计算性理论中,递归是不可避免的。