;(define (count-leaves x) ; (cond ((null? x) 0) ; ((not (pair? x)) 1) ; (else (+ (count-leaves (car x)) ; (count-leaves (cdr x)))))) (define (accumulate op initial sequence) (if (null? sequence) initial (op (car sequence) (accumulate op initial (cdr sequence))))) (define (count-leaves x) (accumulate + 0 (map (lambda (y) (if (not (pair? y)) 1 (+ (count-leaves (car y)) (count-leaves (cdr y))))) x)))