Fishstacks

From Esolang
Jump to navigation Jump to search

Fishstacks is a Deadfish derivative which uses a stack; the stack can only hold four elements, when a fifth element is pushed the bottom element is kicked out and eventually printed out to the screen. The name was originally meant to be Hpmestack but it was suggested that DeafStack or StackFish would be a better name, as it is a derivative, but eventually atriq came up with Fishstacks.

The Stack

First of all it is to be noted that the above specification were meant to be written in 30 seconds. However the language author accidentally set his timer to 30 minutes instead, and it took him about one whole minute to realize that. Unfortunately the extra time wasn't enough for him to think about including a "pop" function, so the "push" function is really just "set the accumulator to 0". No, it's slightly more *cough* subtle than that; "setting the accumulator to 0" has the side effect of causing the previous value of the accumulator to be pushed to the output queue. Happily for everyone the language wasn't called "Dequefish"...

As a side note the 30 minutes timer rang just before this page was saved.

The Commands

Command Effect
i
Increment top element
d
Decrement top element
p
Push a new zero to the stack.
s
Square top element

If there were already four elements in the stack, and the command p is used, the bottom element is outputted and discarded.

Needless to say, Fishstacks's arithmetic is expected to be as ingenious as Deadfish's; whenever the top element reaches -1 or 256 the top element is set to 0, as if the command p was used. This means Fishstacks is more powerful than its predecessor Deadfish: not only does it have a whole stack instead of a lone accumulator, but it can output two more different values!

Examples

User:Killer64 had too much time on his hands and wrote "Hello, World!".

iiisdsiiiiiiiipiiisisipiiisisiiiiii
iipiiisisiiiiiiiipiiisiisdddddddddd
piiisddsdddddpiisiisddddpiiissiiiii
ipiiisiisddddddddddpiiisiisdddddddp
iiisisiiiiiiiipiiisispiisiisdddpppp

About the authors

User:Koen refuses to take full responsibility for this language; User:Taneb is guilty for the name, User:monqy is glad that now he can use this language to write a program, and User:nooodl provided meaningful insights about the semantics.

External resources