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.

Inscriptions and expressions

You must be logged in to post a comment.