通过 AutoLISP 中的列表列表建立索引

发布于 2024-09-30 17:03:00 字数 346 浏览 2 评论 0原文

我有一个整数列表列表:

(setq a '(21 14 35 29 16 28))
(setq b '(15 36 21 17 45 41))
(setq c '(24 21 35 28 17 21))

总共可能有 50 +/- 列表。

我有另一个列表:

(setq me '(17 14 31 21 17 28))

我想循环遍历列表的初始列表,并从列表 me 中减去列表 a 的每个成员(第一次)。

我如何能够通过列表的初始列表进行索引以便我可以执行比较?

I have a list of lists of integers:

(setq a '(21 14 35 29 16 28))
(setq b '(15 36 21 17 45 41))
(setq c '(24 21 35 28 17 21))

There could be 50 +/- lists total.

I have another list:

(setq me '(17 14 31 21 17 28))

I want to cycle through the initial list of lists and subtract each member of list a (1st time thru) from list me.

How would I be able to index thru the initial list of lists so that I can perform the comparison?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对你的占有欲 2024-10-07 17:03:00

如果我假装理解你在问什么...

(setq 
    a  '(21 14 35 29 16 28)
    b  '(15 36 21 17 45 41)
    c  '(24 21 35 28 17 21)
    me '(17 14 31 21 17 28)
    lst (append a b c)
)

(setq result 
    (vl-remove-if
       '(lambda (x) (member x lst))
        me
    )
)    

结果的值是 (31)

如果 ^ 是你正在寻找的那么一个更通用的解决方案:

(defun foo ( lst listOfLists )
    (   (lambda ( grandList )
            (vl-remove-if
               '(lambda (x) (member x grandList))
                lst
            )
        )
        (apply 'append listOfLists)
    )        
)

(foo me (list a b c)) 

返回 (31)

If I pretend to understand what you're asking ...

(setq 
    a  '(21 14 35 29 16 28)
    b  '(15 36 21 17 45 41)
    c  '(24 21 35 28 17 21)
    me '(17 14 31 21 17 28)
    lst (append a b c)
)

(setq result 
    (vl-remove-if
       '(lambda (x) (member x lst))
        me
    )
)    

result's value is (31)

if that ^ was what you were looking for then a more generic solution:

(defun foo ( lst listOfLists )
    (   (lambda ( grandList )
            (vl-remove-if
               '(lambda (x) (member x grandList))
                lst
            )
        )
        (apply 'append listOfLists)
    )        
)

(foo me (list a b c)) 

returns (31)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文