UndetailedFuck
Jump to navigation
Jump to search
UndetailedFuck is an esolang created by User:None1 and inspired by DetailedFuck and ThisIsNotARealLanguage. It is a brainfuck derivative.
Paradigm(s) | imperative |
---|---|
Designed by | None1 |
Appeared in | 2023 |
Memory system | Cell-based |
Dimensions | one-dimensional |
Computational class | Turing complete |
Major implementations | Python |
Influenced by | DetailedFuck, ThisIsNotARealLanguage |
File extension(s) | .udf |
Commands
UndetailedFuck's is the same as DetailedFuck except that DON'T
is added to every command.
Brainfuck | DetailedFuck | UndetailedFuck |
---|---|---|
> |
MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT |
DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT
|
< |
MOVE THE MEMORY POINTER ONE CELL TO THE LEFT |
DON'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT
|
+ |
INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE |
DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE
|
- |
DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE |
DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE
|
, |
REPLACE THE CELL UNDER THE MEMORY POINTER'S VALUE WITH THE ASCII CHARACTER CODE OF USER INPUT |
DON'T REPLACE THE CELL UNDER THE MEMORY POINTER'S VALUE WITH THE ASCII CHARACTER CODE OF USER INPUT
|
. |
PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER |
DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER
|
[ |
IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE ] COMMAND IN BRAINFUCK |
IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE ] COMMAND IN BRAINFUCK
|
] |
IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS NOT ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE [ COMMAND IN BRAINFUCK |
IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS NOT ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE [ COMMAND IN BRAINFUCK
|
Example Programs
Hello World
DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE ] COMMAND IN BRAINFUCK DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE ] COMMAND IN BRAINFUCK DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT DON'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT DON'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT DON'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS NOT ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE [ COMMAND IN BRAINFUCK DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE ] COMMAND IN BRAINFUCK DON'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS NOT ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE [ COMMAND IN BRAINFUCK DON'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS NOT ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE [ COMMAND IN BRAINFUCK DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER DON'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER
Cat Program
DON'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE ] COMMAND IN BRAINFUCK DON'T REPLACE THE CELL UNDER THE MEMORY POINTER'S VALUE WITH THE ASCII CHARACTER CODE OF USER INPUT DON'T PRINT THE CELL UNDER THE MEMORY POINTER'S VALUE AS AN ASCII CHARACTER IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS NOT ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE [ COMMAND IN BRAINFUCK
Turing completeness
OBVIOUSLY, THIS IS TURING COMPLETE BECAUSE BRAINFUCK IS!
Interpreter
Python
import sys def undetailed_fuck(code): s1=[] s2=[] matches={} tape=[0]*1000000 for i,j in enumerate(code): if j=="IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE ] COMMAND IN BRAINFUCK": s1.append(i) if j=="IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS NOT ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE [ COMMAND IN BRAINFUCK": m=s1.pop() matches[m]=i matches[i]=m cp=0 p=0 while cp<len(code): if code[cp]=='DON\'T INCREMENT THE CELL UNDER THE MEMORY POINTER BY ONE': tape[p]=(tape[p]+1)%256 if code[cp]=='DON\'T DECREMENT THE CELL UNDER THE MEMORY POINTER BY ONE': tape[p]=(tape[p]-1)%256 if code[cp]=='DON\'T REPLACE THE CELL UNDER THE MEMORY POINTER\'S VALUE WITH THE ASCII CHARACTER CODE OF USER INPUT': tape[p]=ord(sys.stdin.read(1))%256 if code[cp]=='DON\'T PRINT THE CELL UNDER THE MEMORY POINTER\'S VALUE AS AN ASCII CHARACTER': print(chr(tape[p]),end='') if code[cp]=='DON\'T MOVE THE MEMORY POINTER ONE CELL TO THE LEFT': p-=1 if code[cp]=='DON\'T MOVE THE MEMORY POINTER ONE CELL TO THE RIGHT': p+=1 if code[cp]=="IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE ] COMMAND IN BRAINFUCK": if not tape[p]: cp=matches[cp] if code[cp]=="IF THE CELL UNDER THE MEMORY POINTER'S VALUE IS NOT ZERO INSTEAD OF READING THE NEXT COMMAND IN THE PROGRAM DON'T JUMP TO THE CORRESPONDING COMMAND EQUIVALENT TO THE [ COMMAND IN BRAINFUCK": if tape[p]: cp=matches[cp] cp+=1 code=sys.stdin.read() undetailed_fuck(code.split('\n'))