Chapter 2, Building Abstractions with Data
Section - 2.2 - Hierarchical Data and the Closure Property
Exercise 2.36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#lang sicp
(define (accumulate op initial sequence)
(if (null? sequence)
initial
(op (car sequence)
(accumulate op initial (cdr sequence))
)
)
)
(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))
)
)
)
Example/Output:
1
2
3
4
> (define seqs (list (list 1 2 3) (list 4 5 6) (list 7 8 9) (list 10 11 12)))
> (display (accumulate-n + 0 seqs))
(22 26 30)
>