两个列表我有一个列表((x 1) (y 2) (z 3))
,我想使2名seprate列表:(x y z)
和 (1 2 3)
一个列表在方案
我使用递归调用,使用汽车和CDR尝试,但它没有工作。有一个简单的方法来做到这一点? 谢谢。
两个列表我有一个列表((x 1) (y 2) (z 3))
,我想使2名seprate列表:(x y z)
和 (1 2 3)
一个列表在方案
我使用递归调用,使用汽车和CDR尝试,但它没有工作。有一个简单的方法来做到这一点? 谢谢。
cdr
返回列表的尾部,这是一个列表(假定输入是一个列表,并且不是一个缺点)。你可能想用cadr
代替((car (cdr foo))
)。你可以这样做:
(map car lst) ; '(x y z)
(map cadr lst) ; '(1 2 3)
(map
将调用应用给定函数列表中的每个项目)。
与LS作为列表:(地图汽车LS)和(地图车(地图CDR LS))
(apply map list lst) ; returns ((x y z) (1 2 3))
或使用srfi-1的unzip2
。
最好发布你试过的代码,这样我们可以更好地了解出了什么问题。 – cam 2011-05-14 07:13:13