![]() |
1
6
如前所述,为了快速解决问题,只需使用哈希表。 但是,如果你更喜欢原则性的方法,你可以看看 FSet ,这是一个功能集合论集合库。除此之外,它还包含集合和行李的类和操作。 (编辑:)最干净的方法可能是将面向集的操作定义为泛型函数。毕竟,一组泛型函数基本上等同于Java接口。您可以简单地在标准哈希表类上实现方法作为第一个原型,并允许其他实现。 |
![]() |
2
6
看 cl-containers . 有一个集合容器类。 |
![]() |
3
5
您可以使用列表,尽管它们在表示大型集合时可能被证明是低效的。使用adjoin或 PUSHNEW 向列表中添加新元素,以及 DELETE or REMOVE 做相反的事。
要注意的一件事是这些操作员所使用的 EQL 默认情况下,测试集合中的潜在重复(就像Java使用均等方法一样)。对于包含数字或字符的集合来说,这是可以的,但是对于其他对象的集合来说,一个“更深入”的相等测试,比如 EQUAL 应指定为:test关键字参数,例如,对于一组字符串:
LISP与Java的一些操作的对应点是:
|
![]() |
4
5
是的,有套。见 this section on "Sets" 从 实用通用语言 .
基本上,你可以用
|
![]() |
5
2
使用哈希表很容易解决。
输出
|
![]() |
6
1
我不知道,但你可以用 hash tables 类似的事情。 |
![]() |
8
0
就我个人而言,我只需要实现一个函数,它接受一个列表并返回一个唯一的集合。我已经起草了一些对我有用的东西:
基本上,
我所有这些(不是函数,而是信息)的数据源是 Common Lisp HyperSpec 和 Common Lisp the Language (2nd Edition) . |
![]() |
tryingmybest09 · 设置出生日期排序不正确 2 年前 |
![]() |
David · 在c++中,将集合的向量创建为类成员会产生错误[重复] 6 年前 |
|
user5335342 · 对于带set的循环:key 6 年前 |
![]() |
Joan Pastor · C++基于参数更改设置的默认顺序 6 年前 |
![]() |
LucSpan · 让Python找到满足条件的两个整数 6 年前 |
![]() |
jsstuball · 与两次添加相同对象的Python集混淆 6 年前 |
|
user6822657 · 如何在集合中查找特定元素? 6 年前 |