我对口齿不清很陌生,所以也许这是个愚蠢的问题但是我想根据给定的模式合并两个列表(s1,s2)-boolean的列表S3(t nil…)如果为true,则使用S2中的元素;如果为false,则按原样使用元素所以决赛应该是
s1(1 2 3 2 4)和s2(8 9 5 6 8 9)和S3(零t零t零)=>(1 8 3 9 5 4)
非常感谢你!
右。
最佳答案
Lisp是一个语言家族如果您是指Common Lisp,这里有一个可能的两行解决方案:
CL-USER> (defun merge-3 (s1 s2 s3)
(loop for x in s1 if (pop s3) collect (pop s2) else collect x))
MERGE-3
CL-USER> (merge-3 '(1 2 3 2 2 4) '(8 9 5 6 8 9) '(nil t nil t t nil))
(1 8 3 9 5 4)
关于list - Lisp合并模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41314273/