方案中对和列表之间的连接
Connection between pairs and list in scheme
我正在尝试了解方案中的对和列表之间的联系。我们来看看下面的scheme表达式:
(((a) (b)) ((c) (d)))
我想统计上面表达式中的对数,所以我按如下方式构造:
(list (list (list 'a) (list 'b)) (list (list 'c) (list 'd)))
=> (((a) (b)) ((c) (d)))
(list 'a),(list 'b),(list 'c),(list 'd) - 4 pairs
(list (list 'a) (list 'b)) and (list (list 'c) (list 'd)) - 2 pairs
(list (list (list 'a) (list 'b)) (list (list 'c) (list 'd))) - 1 pair
到目前为止,7 对。应该是10
我在这里错过了什么?
简单事实:包含 n
个元素的适当列表有 n
对:
那么,列表中的元素总数是多少?
像 (a)
这样的列表只有一个元素,所以它们有一对。你有四个,所以你有 4 对。
像 (thing1 thing2
) 这样的列表有两个元素,所以它们有两对。你有三个(两个内部包含列表,如 (a)
,一个外部),所以你有 3 x 2 = 6 个其他对。
你总共有 6 + 4 = 10 对。
我正在尝试了解方案中的对和列表之间的联系。我们来看看下面的scheme表达式:
(((a) (b)) ((c) (d)))
我想统计上面表达式中的对数,所以我按如下方式构造:
(list (list (list 'a) (list 'b)) (list (list 'c) (list 'd)))
=> (((a) (b)) ((c) (d)))
(list 'a),(list 'b),(list 'c),(list 'd) - 4 pairs
(list (list 'a) (list 'b)) and (list (list 'c) (list 'd)) - 2 pairs
(list (list (list 'a) (list 'b)) (list (list 'c) (list 'd))) - 1 pair
到目前为止,7 对。应该是10 我在这里错过了什么?
简单事实:包含 n
个元素的适当列表有 n
对:
那么,列表中的元素总数是多少?
像 (a)
这样的列表只有一个元素,所以它们有一对。你有四个,所以你有 4 对。
像 (thing1 thing2
) 这样的列表有两个元素,所以它们有两对。你有三个(两个内部包含列表,如 (a)
,一个外部),所以你有 3 x 2 = 6 个其他对。
你总共有 6 + 4 = 10 对。