List 递归地从LISP中的列表获取数据

List 递归地从LISP中的列表获取数据,list,recursion,lisp,List,Recursion,Lisp,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) 你知道怎么做吗?听起来像是家庭作业,但下面是我用loop做的 (loop for i in L1 and j in L2 if (numberp i) collect i into x

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)

你知道怎么做吗?

听起来像是家庭作业,但下面是我用loop做的

(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)))

既然已经回答了这个问题,这里有一个替代方法,稍微短一点:

(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)

那是家庭作业吗?你试了什么?Stackoverflow不是解决你作业的平台。嗯?我以为
L1
L2
已经定义好了,你自己发布了。我没有用Lisp工作,我想我写了这篇文章,但不确定这对我来说是否很像作业,对吗?这是
(defvar L1'(1 a f 5 6 8))(defvar L2'(3 t 4 5 3 2))
@wvcvw如何以这种形式打印结果:结果是L3(1 5 6 8 t)