The recursions we have seen so far have involved linear structures, that is, lists in which only the top level was involved. A second class of recursive programs operates on both halves of a pair; in general, such functions call themselves twice.
; Copy a tree structure (define (copy-tree tree) (if (pair? tree) (cons (copy-tree (car tree)) (copy-tree (cdr tree))) tree))
; Test equality of structure (define (equal? x y) (if (pair? x) (and (pair? y) (equal? (car x) (car y)) (equal? (cdr x) (cdr y))) (eqv? x y)) )
Contents    Page-10    Prev    Next    Page+10    Index