0

在集合论中,我们有{x, y, z},这与{z, y, x}which 相同 ... {y, x, z}, {z, x, y}... 现在,在 Lisp(Scheme 等)中,列表不允许这种并置。订单很重要。问题:是否有一个 Lisp/Scheme 等价于一个顺序无关的集合?

只是猜测,我可能只是简单地构建一个列表,比如说(x y z),然后有某种类型,member?即,你是其中的成员吗?机制。

...我敢打赌,我不是唯一对此感到疑惑的人...

4

1 回答 1

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)

于 2016-04-24T15:03:19.313 回答