Exercies 2.36
(define s (list (list 1 2 3) (list 4 5 6) (list 7 8 9) (list 10 11 12))) (accumulate-n + 0 s) (22 26 30)
になりゃいーのね。
こうだッ
(define (accumulate-n op init seqs) (if (null? (car seqs)) '() (cons (accumulate op init (map car seqs)) (accumulate-n op init (map cdr seqs)))))
簡単ですね^o^
nilの部分を'()にしないと(サンプルプログラムを動かすのは)難しい。
別解もあるみたい。これどーなってんの
http:/www.csus4.net/hiki/SICPReading/?%A4%D2%A4%E9%A4%C3%A4%C1
(define (accumulate-n op init seqs) (apply map (lambda x (accumulate op init x)) seqs))