You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sicp-all-tasks/sicp/5_002e21

30 lines
698 B

Exercise 5.21: Implement register machines for
the following procedures. Assume that the list-structure memory operations are
available as machine primitives.
Recursive count-leaves:
(define (count-leaves tree)
(cond ((null? tree) 0)
((not (pair? tree)) 1)
(else
(+ (count-leaves (car tree))
(count-leaves (cdr tree))))))
Recursive count-leaves with explicit counter:
(define (count-leaves tree)
(define (count-iter tree n)
(cond ((null? tree) n)
((not (pair? tree)) (+ n 1))
(else
(count-iter
(cdr tree)
(count-iter (car tree)
n)))))
(count-iter tree 0))