集合
集合类型是一个集合的数学概念。集合的基类型只能是序数类型。原因是集合是作为高性能的位向量实现。
集合可以通过集合构造器来构造:{}是空集合。空集合与任何具体的集合类型是类型兼容的。构造器也可以用于包含元素(和元素的范围)。
type
  CharSet = set[char]
var
  x: CharSet
x = {'a'..'z', '0'..'9'} # This constructs a set that contains the
                         # letters from 'a' to 'z' and the digits
                         # from '0' to '9'
下面是集合类型支持的操作:
| 操作 | 
含义 | 
| A + B | 
连接两个集合 | 
| A * B | 
两个集合的交集 | 
| A - B | 
两个集合的差集 | 
| A == B | 
集合相等 | 
| A <= B | 
子集关系(A是B的子集或者与B相等) | 
| A < B | 
强子集关系(A是B的一个真正的子集) | 
| e in A | 
(集合成员) (A contains element e)   | 
| e notin A | 
A不包含元素e | 
| contains(A, e) | 
A包含元素e | 
| card(A) | 
A集合的势(A中包含的元素个数) | 
| incl(A, elem) | 
A中添加一个元素 | 
| excl(A, elem) | 
A中减少一个元素 | 
集合通常用于在一个过程中定义一个flags类型。这是一个非常清楚(和类型安全)解决方法相比于仅仅定义整形常量。