【问题标题】:Connection between pairs and list in scheme方案中对和列表之间的连接
【发布时间】:2017-11-28 20:40:52
【问题描述】:

我试图了解方案中的对和列表之间的联系。我们来看看下面的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。 我在这里错过了什么?

【问题讨论】:

    标签: list scheme cons


    【解决方案1】:

    简单的事实:具有n 元素的正确列表具有n 对:

    那么,您的列表中的元素总数是多少?

    (a) 这样的列表有一个元素,所以它们有一对。你有四个,所以你有 4 双。

    (thing1 thing2) 这样的列表有两个元素,所以它们有两对。你有三个(两个内部包含(a) 之类的列表,一个外部),所以你有 3 x 2 = 6 个其他对。

    总共有 6 + 4 = 10 对。

    【讨论】:

      猜你喜欢
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2017-07-24
      • 1970-01-01
      • 2016-04-09
      • 2020-04-21
      相关资源
      最近更新 更多