問題2.35 – SICP(計算機プログラムの構造と解釈)その49
2008年12月25日
問題2.35
(map <??> <??>)
部分でリストの葉の数を数える。(葉の数を表す数のリストを返す)
そのリストの各値を足す。
(define (count-leaves t) (accumulate + 0 (map (lambda (x) (cond ((null? x) 0) ((not (pair? x)) 1) (else (count-leaves x)))) t))) (define y (cons (list 1 2) (list 3 4))) ; ((1 2) 3 4) (count-leaves y) gosh> 4 (count-leaves (list y y)) gosh> 8
accumualte 手続き
(define (accumulate op initial sequence) (if (null? sequence) initial (op (car sequence) (accumulate op initial (cdr sequence)))))
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542