Deadfish++
Jump to navigation
Jump to search
Paradigm(s)  Functional 

Designed by  User:Europe2048 
Appeared in  2023 
Computational class  Turing complete 
Major implementations  Unimplemented 
File extension(s)  .dfp 
Deadfish++ is an esolang by Europe2048 which focuses on extending Deadfish.
Instructions & more
Command  What it does 

i  Increases the current memory cell 
d  Decreases the current memory cell 
s  Squares the current memory cell 
0  Resets the current memory cell 
o  Outputs the memory cell as a number (error if it's a string) 
c  Outputs the memory cell as a Unicode character 
l  Move the memory pointer to the left 
r  Move the memory pointer to the right 
n  Print all the memory pointers as numbers in order 
p  Print all the memory pointers as characters in order 
y  Input a number and store its value in the current memory cell 
u  Input a string and store it in the current memory cell 
ƒ  Start of function definition. Next letter is the name of the function (letter that isn't a builtin function or whitespace). 
(  Opening loop: jump past the matching ) if the absolute value of the memory cell the pointer is pointing at is zero 
)  Closing loop: jump at the matching ( if the absolute value of the memory cell the pointer is pointing at isn't zero 
[  Opening infinite loop 
]  Closing infinite loop 
{  Start of comment 
}  End of comment 
<  Start of function definition 
>  End of function definition 
f, e  If and else, respectively. Syntax: f(condition):code e:code Conditional statements must be separated by spaces and ended with a semicolon.

a~b  Store a into the variable b. b's name must be a Unicode character that isn't occupied by another function. The name also must not be a whitespace. Must be ended with a semicolon. 
"a"  String literal. Can be used in the a ~ b command and conditionals. 
mvar  Store a variable into the current memory cell. 
tnumber  Set the tab indentation to the specified number. Number must be one decimal digit greater than 0, in order not to break things. 
ɾvalue  Return a value. 
number  Number literal. 
h  Break from a loop. 
Sequence  Meaning 

\n  Newline 
\t  Tab 
\r  Carriage return 
\b  Backspace 
\f  Form Feed 
\v  Vertical Tab 
\0  null 
\?  Replacement Character 
\o  Object Replacement Character 
\"  A literal quote 
\\  A literal backslash 
\hhhhh  Unicode (base 16). Put a g in the first spot if it's 10xxxx. 
\nnnn  Unicode (base 10) 
Statement/expr.  Meaning 

a = b  Equal operator 
a > b  Greater than 
a < b  Less than 
a + b  Addition 
a  b  Subtraction 
a * b  Multiplication 
a / b  Division 
a ^ b  Exponents 
a % b  Modulo 
@ a  Square root 
#aaa arguments seperated by spaces  Other operations (a = letter/number) 
List of other functions:
Example: g xxx = Function name (g = number of arguments) 1 sin = Sine 1 cos = Cosine 1 tan = Tangent 1 csc = csc 1 sec = sec 1 cot = cot [^ Add 1 for inverse, and h for hyperbolic ^] 1 isn = Inverse sine 1 ics = Inverse cosine 1 itn = Inverse tangent 1 lg2 = Log base 2 1 lga = Log base 10 1 lge = Natural log 2 lgb = Log base n 1 fac = Factorial 0 pii = Pi 0 eee = e (number) 0 gdr = The Golden Ratio 0 gam = γ (number) 0 inf = Infinity 2 com = nCr 2 prm = nPr 2 rnd = Random integer 2 rdf = Random float 2 nrt = nth root 1 flr = Round down 1 cei = Round up 1 rou = Round 2 lcm = Least Common Multiple 2 gcd = Greatest Common Divisor 1 sgn = Sign of a number (1 if negative, 1 if positive) 1 abs = Absolute value (this allows things like #abs a * #sgn a = a for true) 0 dgr = Convert to degrees 0 rad = Convert to radians 0 grd = Convert to gradians
Unlike Deadfish, memory pointers can be 256 or negative.
Unlike brainfuck, there are memory pointers with negative numbers (0th, 1st, 2nd...)
Unlike other cellbased languages, memory cells can contain strings.
Errors
Syntax error  Syntax error Conver error  You can't convert a string to a number! Outrng error  The character you're trying to output is out of range (>1,114,111 or <0) Invopr error  The operation selected in the # expression is not on the list Divby0 error  Division by 0 Tan90d error  tan(90°) Infopr error  An operation with infinity causes an indefinite result (for example, 0 * infinity)
Example programs
Hello, World!
"Hello, world!"~j;mjo
Cat program
uo
Truth machine
y~a;f(a = 0):0iiisddsdc;f(a = 1):0iiisdds[c]
Fibonacci
Repeats 50 times.
1~v;1~w;2~x;iiisddsi(w~v;x~w;v+w~x;)
Factorial
1~a;2~b;iiisddsi(mao;a*b~a;b+1~b;)
Turingcompleteness
Since Deadfish++ has all the commands from brainfuck, and it's turingcomplete, then Deadfish++ is too.
Interepters
None yet.