previous | index | next

Recursion on Integers and Lists

List processing procedures like sum are similar in form to those that work on integers, like sum-of-first. Compare:
     (define sum
       (lambda (lst)
         (if (null? lst)
             0
             (+ (car lst) (sum (cdr lst))))))

     (define sum-of-first
       (lambda (n)
         (if (= n 0)
             0
             (+ n (sum-of-first (- n 1))))))

previous | index | next