此過程應該返回一個列表,其中包含3個給定列表中的備選值。例如(alt('a b c)'(1 2 3)'(i j k))應該返回'(a 1 i b 2 j c 3 k)。返回3個給定列表的交替元素。計劃
這是我迄今爲止的邏輯。我將採用每個列表的第一個元素,並以cdr作爲新參數再次遞歸調用該過程。
(define (alternate lst1 lst2 lst3)
(cons (car lst1)
(cons (car lst2)
(cons (car lst3)
(alternate (cdr lst1)(cdr lst2)(cdr lst3))))))
在
出現的錯誤(cons (car lst1)
「MCAR:違反合同
預期:mpair
給定的()」
(利弊廣告)返回一個新第一個元素是a和第二個元素的分配對是d。但是由於有3個不是2個給定的列表,還有另一種方法來創建列表嗎?
這是另一種方法嗎?
(define (alternate lst1 lst2 lst3)
(list (car lst1)(car lst2)(car lst3))
(alternate (cdr lst1)(cdr lst2)(cdr lst3)))
我明白了,這是有道理的。感謝您的答覆。 – wooot