`
weiliam
  • 浏览: 4000 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

练习2.33-2.36

    博客分类:
  • lisp
 
阅读更多

exercise 2.33
(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)))
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics