UndetailedFuck

From Esolang
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.

UndetailedFuck
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'))