Multi-Set Manipulator

From Esolang
Jump to: navigation, search

Multi-Set Manipulator is a set-based programming language invented by Mathematical Notation. It is not concise at all if it is compared to APL.

All instructions (in mathematics; this is just copied from the Unicode website)

There are 75 symbols in MSM.

All sets in Set Manipulator are multi-sets, although they can occasionally be treated as normal sets.

A∩B A with all items not in B removed; Intersection
A∪B A with all B items appended; Union
AΔB (A-B)∪(B-A)
UA, Unique; make all items in set A unique and return A's value after the unique operation.
^A  or ~A or ¯A All items that don't belong to A
A-B A with all B items removed
∅ null set
() Grouping operator
"abcde..." define a set that has 1-byte characters
'a' one character
[1,2,'a'] define a multi-set, allowing numbers.
I The set that results from 1 line of input
O The output set
← initializing
|a| a's absolute value
− Minus sign; subtraction or number negation
√ Square root sign; simply to the power of 1/2.
∛ Cube root; simply to the power of 1/3.
∜ Fourth root; simply to the power of 1/4.
∞ Infinity
a∣b Whether a Divides b
a∤b Whether a does not divide b
∈ ELEMENT OF
∉ NOT AN ELEMENT OF
∋ CONTAINS AS MEMBER
∌ DOES NOT CONTAIN AS MEMBER
¬ not sign
≌ ALL EQUAL TO
∧ LOGICAL AND
∨ LOGICAL OR
÷ Division
× Cartesian product
A new set can be constructed by associating every element of one set with every element of another set. The Cartesian product of two sets A and B, denoted by A × B is the set of all sets {a, b} such that a is a member of A and b is a member of B.

{1, 2} × {1, 2} = {{1, 1}, {1, 2}, {2, 1}, {2, 2}}.
{"a", "b", "c"} × {"d", "e", "f"} = {{"a", "d"}, {"a", "e"}, {"a", "f"}, {"b", "d"}, {"b", "e"}, {"b", "f"}, {"c", "d"}, {"c", "e"}, {"c", "f"}}..

· Multiplication
+ Addition
≼ PRECEDES OR EQUAL TO
≽ SUCCEEDS OR EQUAL TO
≾ PRECEDES OR EQUIVALENT TO
≿ SUCCEEDS OR EQUIVALENT TO
⊂ SUBSET OF
⊃ SUPERSET OF
⊄ NOT A SUBSET OF
⊅ NOT A SUPERSET OF
⊆ SUBSET OF OR EQUAL TO
⊇ SUPERSET OF OR EQUAL TO
⊈ NEITHER A SUBSET OF NOR EQUAL TO
⊉ NEITHER A SUPERSET OF NOR EQUAL TO
⊊ SUBSET OF WITH NOT EQUAL TO
⊋ SUPERSET OF WITH NOT EQUAL TO
⊀ DOES NOT PRECEDE
⊁ DOES NOT SUCCEED
≠ NOT EQUAL TO
= equals sign; compares both values and multi-sets
< Less than
> Greater than
≤ LESS-THAN OR EQUAL TO
≥ GREATER-THAN OR EQUAL TO
≬ Between
≭ NOT EQUIVALENT TO
≲ LESS-THAN OR EQUIVALENT TO
≳ GREATER-THAN OR EQUIVALENT TO
≴ NEITHER LESS-THAN NOR EQUIVALENT TO
≵ NEITHER GREATER-THAN NOR EQUIVALENT TO
≺ PRECEDES
≻ SUCCEEDS
⊻ XOR
⊼ NAND
⊽ NOR
⊭ NOT TRUE
⊨ TRUE
∴ THEREFORE
∵ BECAUSE; part of an if statement such as ∵condition∴action
⋠ DOES NOT PRECEDE OR EQUAL
⋡ DOES NOT SUCCEED OR EQUAL