Type
Day = (mon,tue,wed,thu,fri,sat,sun);
Days = set of Day;
Procedure PrintDays(W : Days);
Const
DayNames : array [Day] of String[3]
= ('mon','tue','wed','thu',
'fri','sat','sun');
Var
D : Day;
S : String;
begin
S:='';
For D:=Mon to Sun do
if D in W then
begin
If (S<>'') then S:=S+',';
S:=S+DayNames[D];
end;
Writeln('[',S,']');
end;
Var
W : Days;
begin
W:= [low(Days)..high(Days)]; // all elements of the set or inverse of the empty set []
PrintDays(W);
W:=[mon,tue]+[wed,thu,fri]; // equals [mon,tue,wed,thu,fri]
PrintDays(W);
W:=[mon,tue,wed]-[wed]; // equals [mon,tue]
PrintDays(W);
W:=[mon,tue,wed]-[wed,thu]; // also equals [mon,tue]
PrintDays(W);
W:=[mon,tue,wed]*[wed,thu,fri]; // equals [wed]
PrintDays(W);
W:=[mon,tue,wed]><[wed,thu,fri]; // equals [mon,tue,thu,fri]
PrintDays(W);
end.
VHlwZSAgCiAgRGF5ID0gKG1vbix0dWUsd2VkLHRodSxmcmksc2F0LHN1bik7ICAKICBEYXlzID0gc2V0IG9mIERheTsgIAogClByb2NlZHVyZSBQcmludERheXMoVyA6IERheXMpOyAgCkNvbnN0ICAKICBEYXlOYW1lcyA6IGFycmF5IFtEYXldIG9mIFN0cmluZ1szXSAgCiAgICAgICAgICAgPSAoJ21vbicsJ3R1ZScsJ3dlZCcsJ3RodScsICAKICAgICAgICAgICAgICAnZnJpJywnc2F0Jywnc3VuJyk7ICAKVmFyICAKICBEIDogRGF5OyAgCiAgUyA6IFN0cmluZzsgIApiZWdpbiAgCiAgUzo9Jyc7ICAKICBGb3IgRDo9TW9uIHRvIFN1biBkbyAgCiAgICBpZiBEIGluIFcgdGhlbiAgCiAgICAgIGJlZ2luICAKICAgICAgSWYgKFM8PicnKSB0aGVuIFM6PVMrJywnOyAgCiAgICAgIFM6PVMrRGF5TmFtZXNbRF07ICAKICAgICAgZW5kOyAgCiAgV3JpdGVsbignWycsUywnXScpOyAgCmVuZDsgIAogClZhciAgCiAgVyA6IERheXM7ICAKIApiZWdpbiAKICAgVzo9IFtsb3coRGF5cykuLmhpZ2goRGF5cyldOyAvLyBhbGwgZWxlbWVudHMgb2YgdGhlIHNldCBvciBpbnZlcnNlIG9mIHRoZSBlbXB0eSBzZXQgW10KICAgUHJpbnREYXlzKFcpOwogICBXOj1bbW9uLHR1ZV0rW3dlZCx0aHUsZnJpXTsgLy8gZXF1YWxzIFttb24sdHVlLHdlZCx0aHUsZnJpXSAgCiAgIFByaW50RGF5cyhXKTsgIAogICBXOj1bbW9uLHR1ZSx3ZWRdLVt3ZWRdOyAgICAgLy8gZXF1YWxzIFttb24sdHVlXSAgCiAgIFByaW50RGF5cyhXKTsgIAogICBXOj1bbW9uLHR1ZSx3ZWRdLVt3ZWQsdGh1XTsgICAgIC8vIGFsc28gZXF1YWxzIFttb24sdHVlXSAgCiAgIFByaW50RGF5cyhXKTsgIAogICBXOj1bbW9uLHR1ZSx3ZWRdKlt3ZWQsdGh1LGZyaV07IC8vIGVxdWFscyBbd2VkXSAgCiAgIFByaW50RGF5cyhXKTsgIAogICBXOj1bbW9uLHR1ZSx3ZWRdPjxbd2VkLHRodSxmcmldOyAvLyBlcXVhbHMgW21vbix0dWUsdGh1LGZyaV0gIAogICBQcmludERheXMoVyk7ICAKZW5kLg==