Functional deadfish

From Esolang
Jump to navigation Jump to search
This language is a derivative of Deadfish.

Functional deadfish is an expansion of Deadfish which adds "functions".

Its syntax is the same except for the f and c command. All commands between two f commands become part of the function. Functions do not have arguments. The function's name is the number that the iterator is at. The function can be called by using the c command when the iterator is at the functions name.

Example:

fiofifdofdcccicc

prints 12321.

Computational class

Functional deadfish has some similarities to Splinter, but a different data storage model. It effectively allows defining arbitrarily many functions (because Deadfish's counter can take on arbitrarily many values), but not redefining them; the only unbounded state in the language is the iterator (which does not allow arbitrary reads) and the function call stack (where each stack element has finitely many distinguishable values due to the inability to create a loop when the iterator is much higher than the highest defined function name). Functional deadfish is thus most likely to be a push-down automaton, but this has not been proven.