jun353835273 发表于 2023-9-12 09:50:02

论坛直接搜函数不能搜到相关用法贴一个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 *****







陈伟 发表于 2024-5-6 10:29:00

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)

vitalgg 发表于 2023-9-12 10:58:18

jun353835273 发表于 2023-9-12 10:43
你这个就是函数手册上的,和翻手册差不多。

手册的解释就是用精准的语言表述函数的功能。如果能理解这个表述了,还需要看例子吗?
看例子的目的也是为了帮助理解函数函数的用法。


guosheyang 发表于 2023-9-12 11:45:39

(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

liuhe 发表于 2023-9-12 10:14:50

6666666666666666666

jun353835273 发表于 2023-9-12 10:18:29

liuhe 发表于 2023-9-12 10:14
6666666666666666666

来来来 贴一个

kucha007 发表于 2023-9-12 10:33:03

学习一下!

vitalgg 发表于 2023-9-12 10:36:17




vl-every 等同于
(apply 'and (mapcar '测试函数 lst))


vl-some 等同于
(apply 'or (mapcar '测试函数 lst))

jun353835273 发表于 2023-9-12 10:43:29

vitalgg 发表于 2023-9-12 10:36
vl-every 等同于
(apply 'and (mapcar '测试函数 lst))



你这个就是函数手册上的,和翻手册差不多。

蓝天cayuer 发表于 2023-9-12 10:58:51

看看楼主发帖内容

zj20190405 发表于 2023-9-12 12:20:09

6666666666666666666
页: [1] 2
查看完整版本: 论坛直接搜函数不能搜到相关用法贴一个vl-every函数用法