简单递归函数定义

在 Racket 中,我们经常使用递归。下面是一个函数示例,它将从零到参数 n 的所有数字相加。

(define (sum n)
    (if (zero? n)
        0
        (+ n (sum (sub1 n)))))

请注意,此处使用了许多有用的基于便利的功能,例如 zero?sub1。每个都分别完成你所期望的:zero? 返回一个布尔值,表示给定的数字是否等于零,sub1 从其参数中减去一个。