明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1336|回复: 6

[已解答] 有没有函数判断元素是否存在于表中?

[复制链接]
发表于 2014-10-13 14:49:56 | 显示全部楼层 |阅读模式
如题:(setq aa (list "a" "b" "c"))  有没有自带函数判断"a"是否存在于表aa中。
发表于 2014-10-13 15:03:00 | 显示全部楼层
;;;判断表LST1中的每一个元素是否都在表LST2中
;|
函数名称:XD::List:MemberAll
调用格式:(XD::List:MemberAll lst1 lst2)
参数说明:lst1 --- 表
lst2 --- 表
返回值:T --- 表lst1中所有元素都在表 lst2 中
NIL
函数简介:测试表1的所有元素是否都在表2中
函数来源:原创
函数作者:Lispboy
适用版本:不限
最后更新时间:2013-06-05
备注:-
- 本文出自晓东CAD家园-论坛,原文地址:http://www.xdcad.net/forum/thread-668657-1-1.html
|;

;|
判断表LST1中的每一个元素是否都在表LST2中
|;
(defun XD__List_MemberAll (lst1 lst2)
  (not (vl-member-if '(lambda (l)
                        (not (member l lst2))
                      ) lst1
       )
  )
)

;|
(setq a '(1 2 3) b '(3 4 5 1 2 3))
(XD__List_Memberall a b)
T
|;
发表于 2014-10-13 15:04:33 | 显示全部楼层
指令: (setq aa (list "a" "b" "c"))
("a" "b" "c")
指令: (XD__List_Memberall '("a") aa)
T
 楼主| 发表于 2014-10-13 15:18:29 | 显示全部楼层
谢谢!yoyoho。我感觉这个功能很有用,lisp应该自带函数,估计是没有。
发表于 2014-10-13 16:24:39 | 显示全部楼层
Command: (setq aa (list "a" "b" "c"))
("a" "b" "c")

Command: (member "a" aa)
("a" "b" "c")

Command: (member "d" aa)
nil
 楼主| 发表于 2014-10-13 21:32:56 | 显示全部楼层
感谢andyhon 这正是我所需求。
 楼主| 发表于 2014-10-14 19:32:28 | 显示全部楼层
发现一个自带函数:vl-position,找到返回位置,找不到返回Nil
_$ (setq aa '("a" "b" "c" "w"))
("a" "b" "c" "w")
_$ (vl-position "a" aa)
0
_$ (vl-position "w" aa)
3
_$
_$ (vl-position "f" aa)
nil
分享一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 01:58 , Processed in 0.172472 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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