SICP 习题2.33 用accumulate完成一些基本的表操作

来源:互联网 发布:暴力解压rar软件 编辑:程序博客网 时间:2024/06/05 12:40

这个accumulate比第一章完成更强大

(define (accumulate op initial sequence)  (if (null? sequence)    initial    (op (car sequence)        (accumulate op initial (cdr sequence)))))(define (map p sequence)  (accumulate (lambda (x y) (cons (p x) y)) () sequence))(define square   (lambda (x) (* x x)))(newline)(display (map square (list 1 2 3 4 5)))(define (append seq1 seq2)  (accumulate cons seq2 seq1))(newline)(display (append (list 1 2 3) (list 4 5 6)))(define (length sequence)  (accumulate (lambda (x y) (+ 1 y)) 0 sequence))(newline)(display (length (list 1 2 (list 3 4))))
0 0
原创粉丝点击