递归函数是那些自己调用自己的函数。 我们已经在C中使用这些来执行表达式的读取和求值。 我们需要条件分支的原因是因为它们让我们检验我们想要终止递归的情况。

    就像在C中一样,递归函数具有令人愉悦的对称性。 首先,我们对空列表(基线条件)做一些处理。 然后,如果我们得到更大的列表,我们就会取出一个部分,例如列表的头部元素,并对它做一些处理,然后再将它与已经调用了该函数的其余部分进行组合。

    1. (fun {reverse l} {
    2. {{}}

    我们将使用递归来构建许多函数。 因为这将成为在我们的语言中实现循环的主要方式。