exercise 2.33
exercise 2.34
exercise 2.35
exercise 2.36
(define (map2 p sequence)
(accumulate (lambda (x y)
(cons (p x)
y))
nil sequence))
(define (append2 seq1 seq2)
(accumulate cos seq1 seq2))
(define (length2 sequence)
(accumulate (lambda (x y) (+ 1 y)) 0 sequence))
exercise 2.34
(define (horner-eval x coefficient-sequence)
(accumulate (lambda (this-coeff higher-terms)
(* (+ (* higher-terms x) this-coeff) x))
0
coefficient-sequence))
exercise 2.35
(define (count-leaves t)
(accumulate +
0
(map (lambda (sub-t)
(if (pair? sub-t)
(count-leaves sub-t)
1))
t)))
exercise 2.36
(define (accumulate-n op init seqs)
(if (null? (car seqs))
nil
(cons (accumulate op init (map car seqs))
(accumulate-n op init (map cdr seqs)))))
(define s (list (list 1 2 3) (list 4 5 6) (list 7 8 9) (list 10 11 12)))