RosettaCodeData/Task/Set/Diego/set.diego

66 lines
1.7 KiB
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
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(AB=[])_calc([A][B]);
// Intersection
ms_msg()_msg(A∩B=[])_calc([A]∩[B]);
// Difference
ms_msg()_msg(AB=[])_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[];