我的SICP習題答案(2.33~2.35)
2.33
2.34
2.35
(define (map+ p seque)
(accumulate (lambda(x y) (cons (p x) y)) null seque))
(define (append seq1 seq2)
(accumulate cons seq2 seq1))
(define (length seque)
(accumulate (lambda(x y) (+ 1 y)) 0 seque))
(accumulate (lambda(x y) (cons (p x) y)) null seque))
(define (append seq1 seq2)
(accumulate cons seq2 seq1))
(define (length seque)
(accumulate (lambda(x y) (+ 1 y)) 0 seque))
2.34
(define (horner-eval x coeff-seque)
(accumulate (lambda(this-coeff higher-coeff)
(+ this-coeff (* x higher-coeff)))
0 coeff-seque))
(accumulate (lambda(this-coeff higher-coeff)
(+ this-coeff (* x higher-coeff)))
0 coeff-seque))
2.35
(define (count-leaves+ t)
(accumulate + 0 (map (lambda(x)
(if (pair? x) (count-leaves+ x) 1))
t)))
(accumulate + 0 (map (lambda(x)
(if (pair? x) (count-leaves+ x) 1))
t)))
posted on 2008-06-24 00:21 cuigang 閱讀(736) 評論(0) 編輯 收藏 引用 所屬分類: Lisp/Scheme 、我的SICP答案