LISP列表L1和L2由随机字母数字字符组成。
Appliyng递归(和变量收集器)通过从L1和字符中取数字从L2生成列表L3
示例:
L1 = (1 a f 5 6 8)
L2 = (3 t 4 5 3 2)
Result:
L3= (1 5 6 8 t)
你知道怎么做吗?
答案 0 :(得分:1)
听起来像是家庭作业,但这就是我用循环
的方式(loop for i in L1
and j in L2
if (numberp i)
collect i into x
if (symbolp j)
collect j into y
finally (return (append x y)))
答案 1 :(得分:1)
由于已经回答了这个问题,所以这里有一个替代方法,有点简短:
(defparameter *l1* '(1 a f 5 6 8))
(defparameter *l2* '(3 t 4 5 3 2))
(append (delete-if #'symbolp *l1*)
(delete-if #'numberp *l2*)) ; (1 5 6 8 t)