根据定义:
(define x (list 1 2 3))
(define y (list 4 5 6))
查看 (append x y)
、 (cons x y)
和 (list x y))
在解释器里打印的值:
1 ]=> (append x y)
;Value 35: (1 2 3 4 5 6)
1 ]=> (cons x y)
;Value 36: ((1 2 3) 4 5 6)
1 ]=> (list x y)
;Value 37: ((1 2 3) (4 5 6))
其中, (append x y)
的盒子图形为:
(1 2 3 4 5 6) (2 3 4 5 6) (3 4 5 6) (4 5 6) (5 6) (6)
[*]-------------> [*]------------> [*]---------> [*]--------> [*]-----> [*]---> nil
| | | | | |
v v v v v v
1 2 3 4 5 6
(cons x y)
的盒子图形为:
((1 2 3) 4 5 6) (4 5 6) (5 6) (6)
[*]---------------> [*]--------> [*]-------> [*]---> nil
| | | |
| v v v
| 4 5 6
|
| (1 2 3) (2 3) (3)
[*]---------> [*]---------> [*]-----> nil
| | |
v v v
1 2 3
(list x y)
的盒子图形为:
((1 2 3) (4 5 6)) ((4 5 6))
[*]------------------> [*]------------> nil
| |
| |
| | (4 5 6) (5 6) (6)
| [*]----------> [*]------> [*]---> nil
| | | |
| v v v
| 4 5 6
|
| (1 2 3) (2 3) (3)
[*]----------> [*]--------> [*]----> nil
| | |
v v v
1 2 3