最初のページ 戻る 次へ 最後のページ

結果を蓄積する(p300)

(sum-all x)

(sum-all '(1 2 3))

⇒(+ 1 (sum-all '(2 3)))

⇒(+ 1 (+ 2 (sum-all '(3))))

⇒(+ 1 (+ 2 (+ 3 (sum-all '()))))

⇒(+ 1 (+ 2 (+ 3 0)))

⇒(+ 1 (+ 2 3))

⇒(+ 1 5)

⇒6

リストxが空リストであるとき、(sum-all x)は0

リストxが空リストでないとき、(sum-all x)は

(+ (car x) (sum-all (cdr x)))

(sum-all x)

リストxの要素をすべて加算する