【发布时间】:2015-10-04 19:50:40
【问题描述】:
我能够制作一个方案代码来在方案中添加两个缺点列表。 比如说,list1 - '( p . d) 列表 2 ' ( p p p . d) 我使用 cdr & car 概念的自定义添加功能,可以按预期执行 (p p p p . d)。
但是,我现在想根据 p 的数量将 & 相乘,我有一个自定义函数,可以为我提供 list count 。比如说,对于 list1 -> 1 list2-> 3
我还可以设法检测两个列表中的任何一个是否为空,所以我输出'd。
但真正的问题在于乘法。 list1 - '(p p . d) list2 - '(p p p p p . q) 预期结果 - (2 * 5 = 10 p's) 所以 '(p p p p p p p p p .z)
我尝试使用 while 循环、执行 while 、添加自定义函数,但我似乎不知道该怎么做。也许一些指导可以帮助我:)
我想构建一个自定义函数,因为我不想使用集合!或任何使过程更容易但想了解递归在这种情况下的工作方式的东西:)。
【问题讨论】:
-
什么是
d和z?通常两个列表的总和是标准过程append,但它不能做点列表,因为根据你的说法,附加到(a . b)的(a . b)是(a a . b),但是第一个列表b呢?你写了你说的代码,但它在哪里?如果您需要帮助,您需要付出一些努力。 -
你想实现 peano 数字...对吗?
-
你的逻辑很好,但问题在于你的代码细节,因此只有逻辑没有代码,我们很难猜出你做错了什么......为什么不你重写它(如果你知道你所遵循的逻辑,它不会超过 2 分钟)所以我们可以检查它?