Permalink
Browse files

将练习 3.16 的部分解答标记为错误,感谢 AssemblyCoffee 的提醒:

  • Loading branch information...
1 parent 913569a commit 04471159fe5fa741d6ee597485d04cc494d4eda1 @huangz1990 committed Jan 23, 2013
Showing with 78 additions and 75 deletions.
  1. +78 −75 chp3/16.rst
View
@@ -88,123 +88,126 @@
v
1
+.. warning::
-返回结果 4 的组合需要将同一个序对的两个指针分别指向一个长度为 2 的列表的首个元素和第二个元素:
+ **以下解答是错误的,正等待修复。**
-::
+ 返回结果 4 的组合需要将同一个序对的两个指针分别指向一个长度为 2 的列表的首个元素和第二个元素:
- 1 ]=> (define four (cons two (cdr two)))
+ ::
- ;Value: four
+ 1 ]=> (define four (cons two (cdr two)))
- 1 ]=> four
+ ;Value: four
- ;Value 15: ((1 2) 2)
+ 1 ]=> four
- 1 ]=> (count-pairs four)
+ ;Value 15: ((1 2) 2)
- ;Value: 4
+ 1 ]=> (count-pairs four)
+ ;Value: 4
-以下是 ``(cons two (cdr two))`` 的盒子图形:
-::
+ 以下是 ``(cons two (cdr two))`` 的盒子图形:
- [*]------+
- | |
- | |
- v v
- two --> [*]---> [*]---> [/]
- | |
- v v
- 1 2
+ ::
-最后,是返回 7 的组合,比较复杂,需要在草稿纸上尝试多几次才能找出来:
+ [*]------+
+ | |
+ | |
+ v v
+ two --> [*]---> [*]---> [/]
+ | |
+ v v
+ 1 2
-::
+ 最后,是返回 7 的组合,比较复杂,需要在草稿纸上尝试多几次才能找出来:
- 1 ]=> (define five (cons two two))
+ ::
- ;Value: five
+ 1 ]=> (define five (cons two two))
- 1 ]=> five
+ ;Value: five
- ;Value 18: ((1 2) 1 2)
+ 1 ]=> five
- 1 ]=> (count-pairs five)
+ ;Value 18: ((1 2) 1 2)
- ;Value: 5
+ 1 ]=> (count-pairs five)
- 1 ]=> (define seven (cons five (cddr five)))
+ ;Value: 5
- ;Value: seven
+ 1 ]=> (define seven (cons five (cddr five)))
- 1 ]=> seven
+ ;Value: seven
- ;Value 19: (((1 2) 1 2) 2)
+ 1 ]=> seven
- 1 ]=> (count-pairs seven)
+ ;Value 19: (((1 2) 1 2) 2)
- ;Value: 7
+ 1 ]=> (count-pairs seven)
-以下是相应的盒子图形:
+ ;Value: 7
-::
+ 以下是相应的盒子图形:
- seven --> [*]------+
- | |
- | |
- v |
- five --> [*] |
- || |
- || |
- vv v
- two --> [*]---> [*]---> [/]
- | |
- v v
- 1 2
+ ::
-最后要说的是,构造的组合并不是唯一的,比如说,以下组合也可以让 ``count-pairs`` 返回 4 :
+ seven --> [*]------+
+ | |
+ | |
+ v |
+ five --> [*] |
+ || |
+ || |
+ vv v
+ two --> [*]---> [*]---> [/]
+ | |
+ v v
+ 1 2
-::
+ 最后要说的是,构造的组合并不是唯一的,比如说,以下组合也可以让 ``count-pairs`` 返回 4 :
- 1 ]=> (define x (cons 1 '()))
+ ::
- ;Value: x
+ 1 ]=> (define x (cons 1 '()))
- 1 ]=> (define y (cons x '()))
+ ;Value: x
- ;Value: y
+ 1 ]=> (define y (cons x '()))
- 1 ]=> (define z (cons y x))
+ ;Value: y
- ;Value: z
+ 1 ]=> (define z (cons y x))
- 1 ]=> (count-pairs z)
+ ;Value: z
- ;Value: 4
+ 1 ]=> (count-pairs z)
- 1 ]=> z
+ ;Value: 4
- ;Value 12: (((1)) 1)
+ 1 ]=> z
+ ;Value 12: (((1)) 1)
-它的盒子图形是:
-::
+ 它的盒子图形是:
+
+ ::
- z --> [*]---------------+
- | |
- | |
- v |
- y --> [*]---> [/] |
- | |
- | |
- +---------------+|
- ||
- ||
- vv
- x --> [*]---> [/]
- |
- v
- 1
+ z --> [*]---------------+
+ | |
+ | |
+ v |
+ y --> [*]---> [/] |
+ | |
+ | |
+ +---------------+|
+ ||
+ ||
+ vv
+ x --> [*]---> [/]
+ |
+ v
+ 1

0 comments on commit 0447115

Please sign in to comment.