Excellulata

From Esolang
Jump to navigation Jump to search

The name is a portmanteau of "Excel", "cellular" and "automata".

Syntax of formula

A formula is an expression written in Polish(Prefix) notation. Operators include:

add A B        | Add A to B.
con A B        | Concatenate A with B.
sub A B        | Subtract B from A.
mul A B        | Multiply A by B, or duplicate a string.
div A B        | Floor divide A by B.
mod A B        | Modulus A by B
len S          | Length of a string.
find A B       | Find the first occurency of B in A. Returns its index.
repl A B C     | Replace A with C from index B.
gsub A B C     | Get the substring of A from index B and has length C.
findrepl A B C | Find all the occurencies of B in A and replace them with C.
if A B C       | If A is truthy, return B, else return C.
get X Y        | Get the result of the cell that is X cell right, Y cell down. In 1D version, there is no "Y".
put X Y F      | Set the formula of the cell that is X cell right, Y cell down to F. In 1D version, there is no "Y".

Only datatypes are numbers(integers) and strings. String constants are enclosed by {braces} and can be nested.

Excellulata 1D

Ths program executes on an infinite 1D grid.
Each grid contains a formula and a result.
To reference the result, use "t"(top) or "b"(bottom) followed by a positive integer.
To reference the formula, add a "f" before the "t" or "b".

Excellulata 2D

Ths program executes on an infinite 2D grid.
Each grid contains a formula and a result.
To reference the result, use "t"(top) or "b"(bottom) followed by a positive integer, then followed by "l"(left) or "r"(right) and another positive integer.

Examples

Downward replicator in 1D

put 1 get 0