Uack
Jump to navigation
Jump to search
Uack is an esolang made by User:PythonshellDebugwindow.
Memory model
An arbitrary-length stack.
Datatypes
Datatypes are function (which always take an integer as their argument and return an integer) and arbitrary-size unsigned integer.
Syntax
The program is made up of a series of function calls. Where F is a function and X is an integer, then the Python code F(X) would be written like:
XF
But as a special case, the Python code F(G(X)) (where G is also a function) would have to be written like:
FXG
Integers
The only integer available at the start of the program is Z, representing 0; all other integers have to be constructed by the programmer.
Functions
Function | Effect |
---|---|
N | Nop; return 0 |
P | Return its argument plus one |
H | Push its argument to the stack; return its argument |
O | Pop stack, return the popped value |
K | Peek stack, return the peeked value |
T | Print its argument with a newline; return its argument |
B | Break from the outermost function if its argument is zero; return 0 if it broke from the function or 1 otherwise (can change outermost return) |
Popping or peeking when the stack is empty returns -1; this is the only way to get a negative integer.
Examples
Push 3 to the stack:
HPZPP
Push 4:
PPZPPH