Matrixpone

From Esolang
Jump to navigation Jump to search
This article is not detailed enough and needs to be expanded. Please help us by adding some more information.

Matrixpone is a Mascarpone derivative by User:BoundedBeans. It uses a matrix instead of a stack, but has similar operations.

Storage

Matrixpone has a current interpreter and a matrix. Interpreters still have parents, so this allows a stack, but since the matrix can now be accessed freely instead of LIFO, any element in the matrix can have its own stack. Since there is no popping, elements are not deleted when using them for an operation.

The matrix starts off entirely filled with the symbol @.

Instructions

These are in the starting interpreter and can of course be changed.

 v - Take the current interpreter and put it in the matrix cell.
 ^ - Take the currently pointer matrix cell, which should be an interpreter, and make the current interpreter that matrix cell. 
 > - extract, but the symbol should be pointed, and the interpreter should be to the right. This changes the symbol to the extracted operation
 < - install, the interpreter should be pointed, operation should be below, and symbol should be above. This replaces the interpreter
 { - get parent, replace the pointed interpreter
 } - set parent, selected interpreter should be on the right
 * - create, the interpreter should be pointed, the string should be listed left to right, starting on the cell to the right of the pointer (enclosed in matching square brackets as in normal Mascarpone)
 @ - expand, the interpreter will go on the left, and the string will go left to right starting on the cell to the right (enclosed in matching square brackets as in normal Mascarpone)
 ! - execute the pointed operation
 0 - put the null interpreter at the pointer
 1 - uniform, replace the operation with the interpreter
 [ - deepquote, puts the string left to right starting at the pointer, leaving the pointer at the first character
 ' - single quote, replaces the current cell
 . - outputs the pointed symbol
 , - inputs a symbol to the pointer's location
 ; - output a nice representation of the matrix, implementation-dependant
 : - Instruct the next direction point command to instead copy it to the cell it would normally go to. This is another interpreter.
 / - Instruct the next direction point command to instead swap it with the cell it would normally go to. This is also another interpreter.
 A - move the pointer up
 V - move the pointer down
 ) - move the pointer right
 ( - move the pointer left