论坛直接搜函数不能搜到相关用法贴一个vl-every函数用法
本帖最后由 jun353835273 于 2023-9-12 21:37 编辑论坛直接搜函数貌似不能按内容检索,好像是按帖子主体关键字搜索的贴一个vl-every函数用法
(setq vl (list '(1 2 0 ) '(1 2 0 ) '(1 2 0 ) '(2 2 0 )))
(setq is (v-every '(lambda (x) (zerop (last x))) vL));判断是表最后元素是否为0
结果:T
(setq is (vl-every '(lambda (x) (= 1 (car x))) vL));判断是表第一个元素是否为1
结果:nil
(vl-every 'numberp '("h" 0.0 90.0 180.0 270.0 360.0));判断是否都为实数
结果:nil
(setq a (vl-remove-if '(lambda (x) (= 1 (car x)) ) vL));移除第一个元素是为1的表
结果:((2 2 0))
如判断用forach 或者mapcar 判断也行,但是感觉vl-every省事。
(setq lst (list '(1 2 3 4 5 6)'(1 2 3 4 5 6) '(1 2 3 4 5 6) '(2 2 3 4 5 6)))
(setq fuz 1)
(setq a (car lst))
(vl-some
(function (lambda ( x )
(equal x a fuzz)
))
(cdr lst)
)
结果:T
(setq lst (list '(1 2 3 4 5 6) '(2 2 3 4 5 6) '(7 8 9 10 11)))
(setq fuzz 1)
(setq a (car lst))
(vl-some
(function (lambda ( x )
(equal x a fuzz)
))
(cdr lst)
)
结果:nil
还有vl-some这些用法大佬来贴码咯
**** Hidden Message *****
vitalgg 发表于 2023-9-12 10:36
vl-every 等同于
(apply 'and (mapcar '测试函数 lst))
学到了
检查A1中任意一个值在B1什么位置(从0开始,示例返回值为2),如果没有A1返回nil
(defun C:TT()
(setq a1 '(A B C D E))
(setq b1 '( 1 2 A 2 3 4 5 5 5 5 6 7 8 9))
(vl-some '(lambda(x)(vl-position x b1)) a1)
)
列表对比包含关系
(setq a1 '(9 7 6 A))
(setq b1 '(A 1 22 3 4 5 5 5 5 6 7 8 9))
怎么判断B1已经全部含有A1列表,含有返回T不然返回nil
(vl-every '(lambda(x)(vl-position x b1)) a1) jun353835273 发表于 2023-9-12 10:43
你这个就是函数手册上的,和翻手册差不多。
手册的解释就是用精准的语言表述函数的功能。如果能理解这个表述了,还需要看例子吗?
看例子的目的也是为了帮助理解函数函数的用法。
(setq vl (list '(1 2 0 ) '(1 2 0 ) '(1 2 0 ) '(2 2 0 )))
(setq is (vl-every '(lambda (x) (= 1 (car x))) vL));判断是表第一个元素是否为1
应该返回 nil 6666666666666666666 liuhe 发表于 2023-9-12 10:14
6666666666666666666
来来来 贴一个 学习一下!
vl-every 等同于
(apply 'and (mapcar '测试函数 lst))
vl-some 等同于
(apply 'or (mapcar '测试函数 lst))
vitalgg 发表于 2023-9-12 10:36
vl-every 等同于
(apply 'and (mapcar '测试函数 lst))
你这个就是函数手册上的,和翻手册差不多。 看看楼主发帖内容 6666666666666666666
页:
[1]
2