`
zhangle
  • 浏览: 25954 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

sicp 习题 2.21 ~ 2.25

    博客分类:
  • SICP
阅读更多
2.21
(define nil '())

(define (square x)
  (* x x))

(define (square-list items)
  (if (null? items)
      nil
      (cons (square (car items)) (square-list (cdr items)))))

(define (square-list-map items)
  (map (lambda (x) (square x)) items))

(square-list (list 1 2 3 4))

(square-list-map (list 1 2 3 4))


2.22
(define nil '())
(define (square x)
  (* x x))

(define (square-list-iter items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things) 
              (cons (square (car things))
                    answer))))
   (iter items nil))

(define (square-list items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things)
              (cons answer
                    (square (car things))))))
  (iter items nil))

(square-list-iter (list 1 2 3 4))
(square-list (list 1 2 3 4))


2.23
(define nil '())

(define (my-for-each proc items)
  (if (not (null? items))
      ((lambda() (proc (car items))
            (my-for-each proc (cdr items))))))

(my-for-each (lambda (x) (newline) (display x))
          (list 57 321 88))


2.24
(list 1 (list 2 (list 3 4)))


2.25
(define x1 (list 1 3 (list 5 7) 9))

(define x2 (list (list 7)))

(define x3 (list 1 (list 2 (list 3 (list 4 (list 5 (list 6 7)))))))

(car (cdr (car (cdr (cdr x1)))))

(car (car x2))

(car (cdr (car (cdr (car (cdr (car (cdr (car (cdr (car (cdr x3))))))))))))
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics