PlusOrMinus 2
PlusOrMinus 2 is a fungeoid esolang created by User:PythonshellDebugwindow. It is a two-dimensional adaptation of PlusOrMinus.
Memory
Like PlusOrMinus, PlusOrMinus 2 uses an unsigned wrapping 8-bit accumulator which starts at zero.
Instruction pointer
PlusOrMinus 2 uses an instruction pointer which can travel up, right, down, or left. It starts at the top-left corner of the program, and is initially travelling to the right. If the instruction pointer goes out of bounds, then the program exits without raising an error.
Commands
Command | Effect |
---|---|
+ |
Increments the accumulator. |
- |
Outputs the Unicode character whose codepoint is equal to the value of the accumulator, then decrements the accumulator. |
^ |
Makes the instruction pointer travel upwards. |
> |
Makes the instruction pointer travel to the right. |
V |
Makes the instruction pointer travel downwards. |
< |
Makes the instruction pointer travel to the left. |
| |
If the accumulator is equal to zero, then the instruction pointer begins travelling downwards. |
All other characters, when encountered by the instruction pointer, cause the program to raise an error and exit.
Auto-formatting
Before execution of the program begins, each row will be truncated so that it is only as long as the shortest row; the same is true of columns. Trailing whitespace is ignored when finding the shortest row and column.
For example, the following program:
ABCDEFG HIJKL M NOPQRSTUV WX Y Z
would be truncated to:
ABCD HIJK NOPQ
because the shortest row ( Z
) is four characters long and the shortest column when trailing whitespace is ignored (AHM
) is three characters long.
The lengths of the shortest row and column are calculated before truncation takes place. For example, the following program:
AB C D E
would be truncated to:
AB C
with a trailing space on the second line.
Examples
Truth-machine
Replace the first +
on the second line with >
for input 0. Here, the code for input 1 is shown.
V V<<< >+|>+++++++++++++++++++++++++++++++++++++++++++++++++>-+^ ..>++++++++++++++++++++++++++++++++++++++++++++++++->>>>>
Resources
- An interpreter written in Python