MATE

From Esolang
Jump to navigation Jump to search
This is PAL version 2.0 .

MATE, which stands for "MATE: Array-processing Tree Evaluator", will be made by islptng.

This is still a work in progress. It may be changed in the future.

Data types

  • Number: A rational.
  • Character: Literally just a character.
  • List: An array of objects.
  • Lambda: A lambda function.
  • Iterator: You aren't supposed to use it as a data type, but it exists!

Syntax

In this esolang, a program is a single expression. They're written in Polish(Prefix) notation.

Like the previous version PAL, expressions are made of trees of function calls. Each character represents a function that takes a predefined amount of arguments, which follow directly after it in the code. For example, if command A takes 1 argument, B takes 2, C takes 3, and D and E both take none, then this code

CBADCDBEDEDAE

would be written in many languages like

C(B(A(D()),C(D(),B(E(),D()),E()))),D(),A(E()))

There are exceptions. To define a list, you use []; To define a lambda, you use {}. Strings are enclosed in ().

To separate 2 integers, use a space. Otherwise, you won't need any separators.

True is 1, and False is -1 (unlike most languages, which is 0; In this language, however, 0 is truthy).