xⁿxₙ
xⁿxₙ is a minimalist esolang inspired by underload. it was created by User:Yayimhere
memory
memory is stored in a tape starting with only one cell containing the letter A
. the tape is circular so going to the end of the tape will bring you back to the start
syntax
Command : current tape - future tape (future program) direction pointer moved
- description
[
: x - ([x) *
- put the current cell symbol into the code after the command and delete the cell
y]
: x - x, y (]) *
- delete
x
and store it in tape
>
: x - x (>) >
- ignore following command and go left on tape(
1
: x - x (1) <
>
but it goes right on tape
$
: x, y - xy ($) *
- concatenate the the current cell onto the front of the cell to the right of it
(
: x, y - x, x, y (() *
- copy all the cells to the right of the pointer, to the right(including whats under the pointer)
)
: x, y, z - x ( )yz ) *ª
- delete everything right of the pointer and place it in front of the command
^x
: x - x (^x) *
- if the current cell is equal to the symbol following the ^ delete the following command. this skips
x
P
: x - x (P) *
- print the current cell to STOUT
|
: x - x (|) *
- skip following command
{
: x - ({x) *
[
but it moves left on tape
here x, y, z
are placeholders and in commands they are single chars
examples
hello world:
|H]|e]|l]|l]|o]|,]| ]|w]|o]|r]|l]|d]|!]> $$$$$$$$$$$$$P
turing completeness proof
translation from Underload(only :()^
which is still TC):
the stack starts with a A in it which is not accessible : -> 1 (space needed)( ^ -> { (x) -> |x] (xyz) -> 1|x]|y]|z]> (space needed) then $ repeated as many times as the length of the string
so the infinite loop (:^):^
becomes:
1|(]|1]|{]> $$$1 ({
also only these commands are needed now!!:
{1|](>$
which are all pretty simple i think