We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

LargeFish

From Esolang
Jump to navigation Jump to search

LargeFish is an esolang by User:ChuckEsoteric08 based on BigFish, which is itself based on Deadfish

Specification

LargeFish operates on infinite amount of registers which store nonnegative integers. It has the following commands:

i x - increment x
d x - decrement x
s x - square x
o - output x
e x y - set x to y
loop x - loop x times
endloop - end loop

Note that if you put an asterisk before y in e, or before x in loop it would return value of a register. If x has changed while executing, then the amount of times code will be executed is also changed, and if that amount is less or equal to amount of times loop has been executed it would exit the loop when endloop is encountered

Computational class

LargeFish is Turing complete since it can implement PMNN. Increasing and decreasing counters is easy, we can simply use i and d commands. To test if a register x is zero we can use register which we will call test and a loop command like that:

e test *x
loop *test
e test 1
endloop

It would set test to 1 if x is not zero, and to 0 otherwise

Examples

Counter

This example program counts up from inclusive one (1) to inclusive five (5):

e counter               1
e number_of_repetitions 5
loop *number_of_repetitions
  o counter
  i counter
endloop

Interpreter

  • Common Lisp implementation of the LargeFish programming language.