這裡是一個用 Scheme/Lisp 語言寫的遞迴函式 sumall,用以加總一個串列中的所有數字:
scheme
複製程式碼
(define (sumall lst)
(if (null? lst)
0
(+ (car lst) (sumall (cdr lst)))))
這個函式的工作原理如下:
當串列為空時,返回 0。
否則,返回串列的第一個元素與剩餘元素的和。這是通過將 car(取得第一個元素)和遞迴調用 sumall 函式來計算剩餘元素的和實現的。
下面是一些測試例子:
scheme
複製程式碼
(sumall '()) ; 回傳 0
(sumall '(100)) ; 回傳 100
(sumall '(1 2 3 4 5)) ; 回傳 15
這些例子說明了 sumall 函式如何正確地處理不同的輸入情況並返回預期的結果。