Операции с множествами

К множествам с базовыми элементами одного типа применимы операции + (объединение), - (разность) и * (пересечение), а также операторы +=, -= и *=:

var s1,s2,s: set of byte;
begin
  s1 := [1..4];
  s2 := [2..5];
  s := s1 + s2; // s = [1..5]
  s := s1 - s2; // s = [1]
  s := s1 * s2; // s = [2..4]
// s += s1 эквивалентно s := s + s1
// s -= s1 эквивалентно s := s - s1
// s *= s1 эквивалентно s := s * s1
  s += [3..6];  // s = [2..6]
  s -= [3];     // s = [2,4..6]
  s *= [1..5];  // s = [2,4..5]
end.

К множествам с базовыми элементами одного типа применимы также операции сравнения = (равенство), <> (неравенство), <= (нестрого вложено), < (строго вложено), >= (нестрого содержит) и > (строго содержит):

[1..3] = [1,2,3]
['a'..'z'] <> ['0'..'9']
[2..4] < [1..5]
[1..5] <= [1..5]
[1..5] > [2..4]
[1..5] >= [1..5]

Но неверно, что [1..5] < [1..5].

Наконец, операция in определяет, принадлежит ли элемент множеству: 3 in [2..5] вернет True, 1 in [2..5] вернет False.