兩個列表我有一個列表((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