明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1044|回复: 7

[基础] 移除包含字母的元素

[复制链接]
发表于 2015-8-13 08:44 | 显示全部楼层 |阅读模式
  1. (defun c:tt ();移除包含字母的表元素
  2.    (setq lis nil)
  3.   (setq a '(14 2543 a56   6600kk b 53))
  4.   (while a
  5.     (setq aa (car a))
  6.      (if (= (apply  'numberp (list aa)) t )
  7.       (setq lis (append  lis (list aa)))
  8.       lis
  9.     )
  10.     (setq a (cdr a))
  11.   
  12.     lis
  13. )
  14.   )  ;//  (14 2543 53)

点评

(vl-remove-if-not'(lambda(x)(numberp x))'(14 2543 a56 6600kk b 53))==>'14 2543 53)  发表于 2015-8-13 10:23
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2015-8-13 10:56 | 显示全部楼层
感谢:lsheng_73 大师,又学了一招
发表于 2015-8-13 12:10 | 显示全部楼层
发现点问题
  1. (defun c:tt ()                                ;移除包含字母的表元素
  2.   (setq lis nil)
  3.   (setq a '(14 2543 a56 6600kk b 53))
  4.   (while a
  5.     (setq aa (car a))
  6.     (if        (apply 'numberp (list aa))
  7.       (setq lis (append lis (list aa)))
  8.     )
  9.     (setq a (cdr a))
  10.    
  11.   )
  12.   lis
  13. )
 楼主| 发表于 2015-8-13 15:28 | 显示全部楼层
edata 发表于 2015-8-13 12:10
发现点问题

感谢。if判断那样用习惯了!
发表于 2015-8-14 07:42 | 显示全部楼层
(vl-remove-if-not 'numberp '(14 2543 a56   6600kk b 53))

点评

感谢!竟然可以这样玩!  发表于 2015-8-14 09:37
 楼主| 发表于 2015-8-14 15:22 | 显示全部楼层
USER2128 发表于 2015-8-14 07:42
(vl-remove-if-not 'numberp '(14 2543 a56   6600kk b 53))

这个适应范围有限吧(vl-remove-if-not 'zerop '(14 2543 0  0  6600kk b 53))
; 没有返回值

点评

不是没返回值而是参数出错,因为表里边有不能作为 zerop的参数的元素  发表于 2015-8-14 15:32
发表于 2015-8-14 15:36 | 显示全部楼层
本帖最后由 llsheng_73 于 2015-8-14 15:46 编辑
434939575 发表于 2015-8-13 10:56
感谢:lsheng_73 大师,又学了一招


(setq i -1)
(vl-remove-if'(lambda(x)(>=(setq i(1+ i))5))'(1 2 3 4 5 6 7 8 9 0))

(setq i -1)
(vl-remove-if'(lambda(x)(<(setq i(1+ i))5))'(1 2 3 4 5 6 7 8 9 0))

(setq i -1)
(vl-remove-if-not'(lambda(x)(<= 3(setq i(1+ i))6))'(1 2 3 4 5 6 7 8 9 0))

(defun tt(a) (<= 3(setq i(1+ i))6))
(setq i -1)
(vl-remove-if'tt'(1 2 3 4 5 6 7 8 9 0))

评分

参与人数 1明经币 +1 收起 理由
USER2128 + 1 赞一个!

查看全部评分

 楼主| 发表于 2015-8-14 19:08 | 显示全部楼层
llsheng_73 发表于 2015-8-14 15:36
(setq i -1)
(vl-remove-if'(lambda(x)(>=(setq i(1+ i))5))'(1 2 3 4 5 6 7 8 9 0))

感谢再次光临指导!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-2 13:38 , Processed in 0.194970 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表