《计算机程序的构造和解析》 第2章习题选

来源:互联网 发布:达内大数据培训靠谱吗 编辑:程序博客网 时间:2024/05/19 13:09

本文使用DrRacket 编译,请在程序最前面添加 #lang racket

2.17

(define (last-pair items)  (if (null? (cdr items))      (car items)      (last-pair (cdr items))))

2.18

(define (revert items)  (define (revert-iter src_items dst_items)    (if (null? src_items)        dst_items        (revert-iter         (cdr src_items)         (cons (car src_items) dst_items))))  (revert-iter items '()))

2.20

(define (same-parity x . y)  (define (even-equal? a b)    (even? (- a b)))  (define (parity-iter src_items dst_items)    (if (null? src_items)        dst_items        (if (even-equal? (car dst_items) (car src_items))            (parity-iter              (cdr src_items)             (append dst_items (list (car src_items))))            (parity-iter (cdr src_items) dst_items))))  (parity-iter y (list x)))

2.21

(define (square-list items)  (if (null? items)      '()      (cons (* (car items) (car items))            (square-list (cdr items)))))(define (square-list-with-map items)  (map (lambda (x) (* x x)) items))

2.23

(define (for_each proc items)  (if (null? items)      #t      ((lambda ()        (proc (car items))        (for_each proc (cdr items))))))




0 0
原创粉丝点击