How dare you fuck the brain
Jump to navigation
Jump to search
| Designed by | Gaham |
|---|---|
| Appeared in | 2024 |
| Computational class | Turing-complete |
| Reference implementation | see at #Interpreter |
| Influenced by | brainfuck |
How dare you fuck the brain is "brainfuck but it's only purpose to be a golf esolang"-like esolang, created by User:Ractangle and is by far the best thing he has made (excluding the unimplemented languages)
Syntax
| Command | Meaning |
|---|---|
| I | Increment current cell |
| D | Decrement current cell |
| ^ | Move the cell pointer right |
| v | Move the cell pointer left |
| ) | Go to the nearest last newline if the cell is not 0 |
| P | Print a character from the cell's value |
| N | Print the cell's value |
| = | Copy the current cell's value to the cell next to it |
| + | Sum the current cell's value of and the cell next to it and put the result to the first cell of the operator and empty the cell next to it |
| H | Halts program |
| / | Skips a command if the cell is not zero |
| ↑ | Sets the the claw to the cell's value |
| ↓ | Sets the cell's value to the claw |
| G | Goto statement. Does nothing if the current cell is negative |
| ; | Gets user input and stores the interger into the currently pointing cell |
| -> | Comment. Ignores all characters until encounters a newline |
Examples
Disan Count
; D^INv)H
Truth-machine
;/N/H^I N)
Erase data in a cell
D)
Hello, world!
IIII=+=+=+=+IIIIIIIIP=DDDP^IIIIPPIIIP^IIII=+=+=+^IIII=+=+DDDDv+P DvD^)IIII=+=+=+P=+^IIII=+=+v+IIIIIIIP= vD^D)^DDDDDDDDv+P=IIIP^DDDP^DDDD=+v+P^IIII=+=+=+IPH
Move data from a cell to an another cell
= ->Copy from the other cell before erasing the data from it D)
Using the claw:
↑ ->some value from the other cell ^^^ ->you can move the value basicly anywhere ↓ ->the claw will replace the current cotent of the cell that the pointer is currently pointing at and replcade it with the value from the grabed cell
A+B Problem
;=;+NH
Computational class
HDYFTB is Turing-complete since Brainfuck can be translated into HDYFTB (proof by User:Yayimhere)
[...] -> \n...) or |...) + -> I - -> D > -> ^ < -> v . -> P
Are nesting loops suported in HDYFTB... No
Interpreter
Xyzzy made a python interpreter of HDYFTB, modified majorly by User: Ractangle.
from sys import argv
debug=imp=cp=dp=0;a=argv[1:]
while a:
if a[0]=="-d":debug=1
elif a[0]=="-c":imp=1
a.pop(0)
tape=[0]*8;code="""H""".strip();c=""
while cp!=len(code):
if code[cp]=="I":tape[dp]+=1
elif code[cp]=="D":tape[dp]-=1
elif code[cp]=="^":dp+=1
elif code[cp]=="v":dp-=1
elif code[cp]=="P":print(chr(tape[dp]),end="")
elif code[cp]=="N":print(tape[dp],end="")
elif code[cp]=="=":tape[dp+1]=tape[dp]
elif code[cp]=="+":tape[dp]=tape[dp+1]+tape[dp];tape[dp+1]=0
elif code[cp]==")":
if tape[dp]!=0:
while code[cp]not in"\n|":cp-=1
elif code[cp]=="/":cp+=1 if tape[dp]!=0 else 0
elif code[cp]=="↑":
if c!="":print("claw aready defined");break
c=tape[dp];tape[dp]=0
elif code[cp]=="↓":
if c=="":print("claw undefined");exit()
tape[dp]=c;c=""
elif code[cp]=="H":break
elif code[cp]=="G": cp=tape[dp]if tape[dp]>0 else cp
elif code[cp]==";":
try:tape[dp]=int(input())
except EOFError:print("EOF reached",end="");exit()
elif code[cp:cp+2]=="->":
try:cp=code.index("\n",cp)
except ValueError:break
cp+=1
print(chr(tape[dp])if imp else tape[dp])
if debug:print(f"\n{tape}\npointing at {dp+1}")
