簡單遞迴函式定義

在 Racket 中,我們經常使用遞迴。下面是一個函式示例,它將從零到引數 n 的所有數字相加。

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

請注意,此處使用了許多有用的基於便利的功能,例如 zero?sub1。每個都分別完成你所期望的:zero? 返回一個布林值,表示給定的數字是否等於零,sub1 從其引數中減去一個。