66 lines
1.7 KiB
Text
66 lines
1.7 KiB
Text
|
|
use_namespace(rosettacode)_me();
|
|||
|
|
|
|||
|
|
// Set creation
|
|||
|
|
add_set(A)_values(🐖,🦬,🦘,🦫,🦭);
|
|||
|
|
add_set(B)_values(🐈⬛,🦬,🦫,🦤,🐐);
|
|||
|
|
add_set(C)_values(🐈⬛,🦫);
|
|||
|
|
add_set(M)_value(🐖);
|
|||
|
|
|
|||
|
|
// Membership
|
|||
|
|
ms_msg()_calc([M]∈[B])
|
|||
|
|
? with_msg()_msg(set M is an element in set B);
|
|||
|
|
: with_msg()_msg(set M is not an element in set B);
|
|||
|
|
;
|
|||
|
|
|
|||
|
|
ms_msg()_calc(🐖∈[A])
|
|||
|
|
? with_msg()_msg(🐖 is an element in set A);
|
|||
|
|
: with_msg()_msg(🐖 is not an element in set A);
|
|||
|
|
;
|
|||
|
|
|
|||
|
|
// Union
|
|||
|
|
ms_msg()_msg(A∪B=[])_calc([A]∪[B]);
|
|||
|
|
|
|||
|
|
// Intersection
|
|||
|
|
ms_msg()_msg(A∩B=[])_calc([A]∩[B]);
|
|||
|
|
|
|||
|
|
// Difference
|
|||
|
|
ms_msg()_msg(A∖B=[])_calc([A]∖[B]); // U+2216 is used not U+005c (\)
|
|||
|
|
ms_msg()_msg(A\\B=[])_calc([A]\\[B]); // U+005c (\) has to be escaped
|
|||
|
|
|
|||
|
|
// Subset
|
|||
|
|
ms_msg()_calc([C]⊆[A])
|
|||
|
|
? with_msg()_msg(set C is a subset of set A);
|
|||
|
|
: with_msg()_msg(set C is not a subset of set A);
|
|||
|
|
;
|
|||
|
|
|
|||
|
|
ms_msg()_calc([C]⊆[B])
|
|||
|
|
? with_msg()_msg(set C is a subset of set B);
|
|||
|
|
: with_msg()_msg(set C is not a subset of set B);
|
|||
|
|
;
|
|||
|
|
|
|||
|
|
// Equality
|
|||
|
|
ms_msg()_calc([A]=[B])
|
|||
|
|
? with_msg()_msg(set A is equal to set B);
|
|||
|
|
: with_msg()_msg(set A is not equal to set B);
|
|||
|
|
;
|
|||
|
|
|
|||
|
|
// Test
|
|||
|
|
ms_msg()_calc([A]⊂[B])_or()_calc([A]⊊[B])
|
|||
|
|
? with_msg()_msg(set A is a proper subset of set B);
|
|||
|
|
: with_msg()_msg(set A is not a proper subset of set B);
|
|||
|
|
;
|
|||
|
|
|
|||
|
|
ms_msg()_calc([C]⊂[B]||[C]⊊[B]) // alternative syntax
|
|||
|
|
? with_msg()_msg(set C is a proper subset of set B);
|
|||
|
|
: with_msg()_msg(set C is not a proper subset of set B);
|
|||
|
|
;
|
|||
|
|
|
|||
|
|
// Modify a mutable set (all sets are mutable)
|
|||
|
|
with_set(M)_push(🦬,🦘,🦫,🦭);
|
|||
|
|
ms_msg()_calc([M]=[A])
|
|||
|
|
? with_msg()_msg(set M is equal to set A);
|
|||
|
|
: with_msg()_msg(set M is not equal to set A);
|
|||
|
|
;
|
|||
|
|
|
|||
|
|
reset_namespace[];
|