此过程应该返回一个列表,其中包含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