Combinators

A combinator in the concatenative calculus (which is a bit easier to deal with than other combinator models for our purposes) has 6 core capabilities:

  1. Use one of its arguments in multiple places
  2. Use its arguments in a different order than they came in
  3. Drop one of its arguments
  4. Put one of its arguments at a deeper nesting level than they started on
  5. Unwrap a nesting level from one of its arguments
  6. Combine some of the contents of its arguments

mlatu-6 - Esolang

Mlatu is a programming language that has a primitive combinator for each of these capabilities (it also has pattern matching, so we will call the system of just these primitive combinators “mlatu-6”), and it gives them a nice single character mnemonic. We should also explain what a quotation is: a quotation is a pair of parentheses containing a sequence of combinators or other quotations, like (-+(,~)<). These combinators only perform their function if they are not inside of a quotation.

Here is an evaluator by Xylochoron that you can use to test programs: https://www.wolframcloud.com/obj/ericp/mlatu6Evaluator