66 lines
1.7 KiB
Plaintext
66 lines
1.7 KiB
Plaintext
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[];
|