From Esolang
Jump to navigation Jump to search

Dotfuck is a clone of unary invented by User:None1, but you only get to use dots (.).


Dotfuck (or .fuck for short), is probably the craziest esolang at least in this wiki. Because using it will usually make you feel like a million bombs exploding in your brain.


When running, a .fuck program transpiles into brainfuck using the following steps: 1. The number of dots in your program is represented as a binary number (big endian), and zeros are added in the front until the binary number has a bit number divisible by 3.

2. Split the number into groups of 3 bits, then convert each group using the following table:

111 +

001 ,

010 .

011 <

100 >

101 [

110 ]

In order to prevent ambiguity (e.g. 000 and 000000 both stands for 0), .fuck sacrifices its - command, causing it to be even more brain-exploding.

Why is it brain-exploding

The esolang is brain-exploding because the number of dots grow exponetially. If you want to use .fuck to print HELLOWORLD, you will have to enter at least


dots, as a comparison, there are less than 10100 (which is 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) atoms in the universe.

Just think of how many dots you will need to print "Hello World!" (in a normal case, with space and exclamation mark), your hippocampus will probably explode when calculating numbers that large, so you will need a programming language (mine is Python) to assist you, but even it you do, imagine if you have to type all of them!

Turing completeness

Despite the fact that it is brain-exploding, it is still Turing complete because brainfuck is, and one decrement can be replaced with 255 increments.

Example Programs

The only program I think is normal is the one time cat program, which consists of only 10 dots:


There is also a cat program in Dotfuck, which is the shortest cat program in this esolang. It is 6798 bytes long (excluding all the line feeds which wrap the program) , but it is relatively shorter than other programs in dotfuck.


Translator to brainfuck, in Python:

if not c.isdigit():
print(''.join(' ,.><[]+'[int(i)] for i in '{:o}'.format(c)))

Accepts both number and dots as input.

See also