在集合论中,我们有{x, y, z}
,它与{z, y, x}
相同,与{y, x, z}
,{z, x, y}
相同......现在,在Lisp(Scheme等)列表不允许这样的并置。订单很重要。问题:Lisp / Scheme是否等同于order-doesn&t-matter set?
猜测,我可能只是构建一个列表,比如说(x y z)
,然后有某种member?
即你是机制的成员。
......我敢打赌,我并不是唯一一个对此感到疑惑的人...
答案 0 :(得分:1)
如果你在谈论common lisp
,它有很多函数,它们在列表上运行,就像它们是集合一样:
(member 'b '(a b c d))
=> (B C)
您也可以使用member_if
。设置操作还有一些其他功能:
(union '(a b c) '(f a d))
=> (C B F A D)
(intersection '(a b c) '(f a d))
=> (A)
(set-difference '(a b c) '(b c d))
=> (A)