用vl-remove-if 写个去除祖玛enlist的第1-4个元素,谢谢大侠
我想删除祖玛表的第1-4个元素,用vl-remove-if来一句话写,但是自己没整出来,只好到明经求助了。。(setq a (list 1 2 3 4))
(vl-remove-if '(lambda (x) ...... enlist)
后面就不会了。。。。
cddddr 试试呗 楼上能帮我写一下吗?
或者不用vl-remove-if,能实现我的所要的删除表中指定位置的元素,指定位置是多个,在一个表内list0内,如
(2 3 7 11),删除表的第2、3、7、11号元素(我知道表是从0开始算的),怎么解决?
代码希望尽量简捷一点, ;来自黄名儒
;;除去表一部分
;;(enth 2 3 '(1 2 3 4 5))
(defun enth (from to lst / I L)
(setq i -1)
(foreach x lst
(setq i (1+ i))
(cond ((or (< i from) (> i to)) (setq l (cons x l))))
) ;_ 结束foreach
(REVERSE l)
) ;By 熊掌定制.
;CAD插件定制 QQ775452144
(defun cx-EListPo(lst e_lst)
(vl-remove-if '(lambda(x)(member(vl-position x lst)e_lst))lst)
)
(cx-EListPo '(1 2 3 4 5) '(0 3 2))
=> '(2 5)
删除0位 3位 2位的元素. 鱼与熊掌 发表于 2015-1-30 01:25 static/image/common/back.gif
好强大!又学到一招~ 鱼与熊掌 发表于 2015-1-30 01:26 static/image/common/back.gif
(cx-EListPo '(1 2 3 4 5) '(0 3 2))
=> '(2 5)
删除0位 3位 2位的元素.
(CX-ELISTPO'(1 2 3 1 3 5)'(0 2))
(2 5) (defun tt(lst en_lst / i a)
(setq i -1)
(reverse(repeat(length lst)
(setq i(1+ i)
a(if(member i en_lst)a(cons(nth i lst)a)))))
)
(tt'(1 2 3 1 3 5)'(0 2))
(2 1 3 5) 鱼与熊掌 发表于 2015-1-30 01:22 static/image/common/back.gif
(defun enth (from to lst / I L)
(setq i -1)
(foreach x lst
(setq i (1+ i)
l(if(<= from i to)l(cons x l)))
) ;_ 结束foreach
(REVERSE l)
)
页:
[1]
2