【发布时间】:2015-11-15 06:19:25
【问题描述】:
所以,我在 Scheme 中有一个学校项目(在 Dr.Racket 环境中工作),这是一个短期的项目(请注意,我没有要求你们任何人为我做功课)。
我有 2 个列表:一个是 6 个或更多字符,另一个是 3 个字符。
我们要做的是将它们组合成如下所示的方式:
List 1: (1 2 3 4 5 6 7 8)
List 2: (a b c)
到这里:
(1 a 2 b 3 c 4 5 c 6 b 7 a 8)
现在,我对如何做到这一点有了一个想法,其中包括在使用 cons 将字母“附加”之后,将其“切割”成多个部分并使用 cons 将它们重新组合在一起。
这是我的问题: 我做了一个函数,它应该将 2 个列表构造为一个,但它不起作用,并给了我在函数定义中使用的名称。
代码如下:
(define (match List1 List2)
(cons (List1) (List2)))
(match (1 2 3) (5 7 8))
结果:
((List1) List2)
我做错了什么,我该如何解决?
【问题讨论】:
-
这不是你写的代码。如果您需要解释,请发布您实际拥有的代码。使用复制和粘贴,不要重新输入。
-
我怀疑你写了
(cons '(List1) '(List2))。除非你有意,否则不要引用 (') 的东西。 (如果你不知道引用是什么意思,你可能根本不想这样做。)转到 DrRacket 中的交互式窗口,玩弄cons和各种列表和其他表达式,看看会发生什么。