【发布时间】:2018-01-13 07:40:39
【问题描述】:
我正在尝试回答一个方案问题,对于这个问题的一部分,我必须列出一个列表:
(define (join a b (result '()))
(cons (list a b) result))
所以我接收两个字符,并将它们放在一个列表中,然后我需要将每个子列表放入一个列表列表中,这个函数每次都用两个字符递归调用,所以它应该像这个:
join 1 4
=> ((1 4))
join 2 5
=> ((1 4) (2 5))
join 3 6
=> ((1 4) (2 5) (3 6))
但是,我得到((3 6) (2 5) (1 4)),所以需要反转元素,我尝试将我的cons 函数反转为(cons result (list a b)),但后来我得到(((() 1 4) 2 5) 3 6),我怎样才能以正确的方式获得列表,还是有更简单的方法来做我正在做的事情?
【问题讨论】:
-
您实际上是在尝试将
append(list a b)转换为result,因此请考虑如何在方案中add element to the end of list。
标签: scheme