集合
集合类型是一个集合的数学概念。集合的基类型只能是序数类型。原因是集合是作为高性能的位向量实现。
集合可以通过集合构造器来构造:{}是空集合。空集合与任何具体的集合类型是类型兼容的。构造器也可以用于包含元素(和元素的范围)。
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类型。这是一个非常清楚(和类型安全)解决方法相比于仅仅定义整形常量。