我试图弄清楚如何在Scheme中消除括号?

时间:2018-11-09 19:39:48

标签: scheme racket

简而言之,我无法弄清楚如何在方案中消除此列表上的一个愚蠢的括号。 这是列表:

(("R" 100 199 (("L" 120 140 160 180))) ("R" 200 299 (("L" 220 240 260 280))))

我知道我必须使用car和cdr,但是我觉得我已经尽一切可能了。

1 个答案:

答案 0 :(得分:1)

您无法摆脱顶级括号,因为它们将两个表达式绑定在一起,正如您将表达式分成不同的行所见:

(
 ("R" 100 199 (("L" 120 140 160 180)))
 ("R" 200 299 (("L" 220 240 260 280)))
)

这里唯一可能多余的括号是“ L”表达式周围的括号。

(
 ("R" 100 199 ("L" 120 140 160 180))
 ("R" 200 299 ("L" 220 240 260 280))
)

但是这些表达式看起来“不平衡”。作为一个疯狂的猜测,我想这就是您要寻找的(现在,使用适当的Scheme缩进):

(("R" 100 199)
 ("L" 120 140 160 180)
 ("R" 200 299)
 ("L" 220 240 260 280))

但是要确定,我们必须知道您到底想做什么,以及这些“ L”和“ R”是什么意思。