Multiset creation
The back-quote (`) operator is the multiset constructor. For example, 3`7 is the multiset with three appearances of the color 7.
Syntax
i`c
The integer i must be non-negative. If this is not the case then the empty multiset will be returned.
Example
The multiset operator combined with multiset addition and subtraction (described below) provide a succinct method for specifying multisets. For example,
3`true++2`false
is a Boolean multiset consisting of 5 Boolean values: 3 instances of true and 2 instances of false.
Constants, operations, and functions
Empty
empty
The empty constant constructs an empty multiset that is identical for all kinds of multisets
Multiset equality
ms1 == ms2
Multiset inequality
ms1 <><> ms2
Multiset greater than
ms1 >> ms2
Multiset greater than or equal to
ms1 >>= ms2
Multiset less than
ms1 << ms2
Multiset less than or equal to
ms1 <<= ms2
Multiset addition
ms1 ++ ms2
Multiset subtraction
ms1 — ms2
ms2 must be less than or equal to ms1, raises Subtract exception if ms2 is not less than or equal to ms1.
Scalar multiplication
i ** ms
Size of multiset
size ms
Pseudo-random color
random ms
Number of appearances
cf(c,ms)
Multiset and predicate
filter p ms
Takes a predicate p and a multiset ms and produces the multiset of all the appearances in ms satisfying the predicate p.
Multiset and function
ext_col f ms
Takes a function f and a multiset c1`s1++c2`s2++...++cn`sn and produces the multiset c1`f(s1)++c2`f(s2)++...++cn`f(sn).
ext_ms f ms
Takes a function f and a multiset c1`s1++c2`s2++...++cn`sn and produces the multiset c1*f(s1)++c2*f(s2)++...++cn*f(sn).
Single element
ms_to_col ms
Converts a multiset of size 1 into the single element in the multiset, raises no_singleton exception if (size ms) is not equal to 1.

You must be logged in to post a comment.