MATE
- 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).