关闭

练习2.24 2.26

144人阅读 评论(0) 收藏 举报
分类:
#|
(define x (cons (list 1 2) (list 3 4)))
(length x)

(define (count-leaves tree)
  (cond ((null? tree) 0)
        ((not (pair? tree)) 1) ;: 叶子
        (else (+ (count-leaves (car tree))
                 (count-leaves (cdr tree))))))

(count-leaves x)

|#
;: 练习 2.24
(list 1 (list 2 (list 3 4))) ;: '(1 (2 ( 3 4)))

#|
;: 盒子

(list a b) => (cons a (cons b nil))
;: 图为
[.][.]-->[.][.]-->nil
 |        |
 |        |
 V        V
 a        b



(list 1 (list 2 (list 3 4))) ;:  
[.][.]--------------->[.][.]-->nil
|                      |
|                      |
V                      V        
1  (list 2 (list 3 4))[.][.]--->[.][.]-->nil 
                       |         |
                       |         |
                       V         |
                       2         V
                      (list 3 4)[.][.]-->[.][.]-->nil
                                 |        |           
                                 |        |              
                                 V        V                 
                                 3        4                 


;: 树

(1 (2 (3 4)))
    .
   / \
  1   . (2 (3 4))
     / \
    2   .( 3 4)
       / \
      3  4
|#



;:  练习 2.25
(car ;:7
 (cdr ;: '(7)
  (car ;: '(5 7)
   (cdr ;: '((5 7) 9) 
    (cdr '(1 2 (5 7) 9)) ;: '(2 (5 7) 9)
    ))))

(car (car '((7))))


(car ;: 7
 (cdr ;: '(7)
  (cdr
   (cdr
    (cdr
     (cdr
      (cdr '(1 2 3 4 5 6 7) ;:'(2 3 4 5 6 7)
           )))))))


#|
;: 练习 2.6
(define x (list 1 2 3))
(define y (list 4 5 6))
(cons x y) ;: '((1 2 3) 4 5 6)
(list x y) ;: '((1 2 3) (4 5 6))
|#
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7063次
    • 积分:720
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:7篇
    • 译文:27篇
    • 评论:0条