Description
When the * operator has operands of set type then it performs set intersection (i.e. the result of the operation is a set made up of the members common to both the left and right operands).
Example
['a', 'b', 'c', 'd'] * ['a', 'c', 'j', 'z'] results in ['a', 'c']
To see this try the example program below:
program seti(output);
type
letter = 'a'..'z';
var
s : set of letter;
c : letter;
begin
s := ['a', 'b', 'c', 'd'] * ['a', 'c', 'j', 'z'];
for c := 'a' to 'z' do
if c in s then
writeln(c)
end.