79 lines
1.8 KiB
Plaintext
79 lines
1.8 KiB
Plaintext
/* illustrating some functions on sets; names are self-explanatory */
|
|
|
|
a: {1, 2, 3, 4};
|
|
{1, 2, 3, 4}
|
|
|
|
b: {2, 4, 6, 8};
|
|
{2, 4, 6, 8}
|
|
|
|
intersection(a, b);
|
|
{2, 4}
|
|
|
|
union(a, b);
|
|
{1, 2, 3, 4, 6, 8}
|
|
|
|
powerset(a);
|
|
{{}, {1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}, {1, 2, 4}, {1, 3}, {1, 3, 4}, {1, 4}, {2}, {2, 3}, {2, 3, 4}, {2, 4}, {3}, {3, 4}, {4}}
|
|
|
|
set_partitions(a);
|
|
{{{1}, {2}, {3}, {4}}, {{1}, {2}, {3, 4}}, {{1}, {2, 3}, {4}}, {{1}, {2, 3, 4}}, {{1}, {2, 4}, {3}}, {{1, 2}, {3}, {4}},
|
|
{{1, 2}, {3, 4}}, {{1, 2, 3}, {4}}, {{1, 2, 3, 4}}, {{1, 2, 4}, {3}}, {{1, 3}, {2}, {4}}, {{1, 3}, {2, 4}}, {{1, 3, 4}, {2}},
|
|
{{1, 4}, {2}, {3}}, {{1, 4}, {2, 3}}}
|
|
|
|
setdifference(a, b);
|
|
{1, 3}
|
|
|
|
emptyp(a);
|
|
false
|
|
|
|
elementp(2, a);
|
|
true
|
|
|
|
cardinality(a);
|
|
4
|
|
|
|
cartesian_product(a, b);
|
|
{[1, 2], [1, 4], [1, 6], [1, 8], [2, 2], [2, 4], [2, 6], [2, 8], [3, 2], [3, 4], [3, 6], [3, 8], [4, 2], [4, 4], [4, 6], [4, 8]}
|
|
|
|
subsetp(a, b);
|
|
false
|
|
|
|
symmdifference(a, b);
|
|
{1, 3, 6, 8}
|
|
|
|
partition_set(union(a, b), evenp);
|
|
[{1, 3}, {2, 4, 6, 8}]
|
|
|
|
c: setify(makelist(fib(n), n, 1, 20));
|
|
{1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765}
|
|
|
|
equiv_classes(c, lambda([m, n], mod(m - n, 3) = 0));
|
|
{{1, 13, 34, 55, 610, 1597, 2584}, {2, 5, 8, 89, 233, 377, 4181}, {3, 21, 144, 987, 6765}}
|
|
|
|
disjointp(a, b);
|
|
false
|
|
|
|
adjoin(7, a);
|
|
{1, 2, 3, 4, 7}
|
|
|
|
a;
|
|
{1, 2, 3, 4}
|
|
|
|
disjoin(1, a);
|
|
{2, 3, 4}
|
|
|
|
a;
|
|
{1, 2, 3, 4}
|
|
|
|
subset(c, primep);
|
|
{2, 3, 5, 13, 89, 233, 1597}
|
|
|
|
permutations(a);
|
|
{[1, 2, 3, 4], [1, 2, 4, 3], [1, 3, 2, 4], [1, 3, 4, 2], [1, 4, 2, 3], [1, 4, 3, 2],
|
|
[2, 1, 3, 4], [2, 1, 4, 3], [2, 3, 1, 4], [2, 3, 4, 1], [2, 4, 1, 3], [2, 4, 3, 1],
|
|
[3, 1, 2, 4], [3, 1, 4, 2], [3, 2, 1, 4], [3, 2, 4, 1], [3, 4, 1, 2], [3, 4, 2, 1],
|
|
[4, 1, 2, 3], [4, 1, 3, 2], [4, 2, 1, 3], [4, 2, 3, 1], [4, 3, 1, 2], [4, 3, 2, 1]}
|
|
|
|
setequalp(a, b);
|
|
false
|