We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
Blanket
Blanket is a Deque-based esolang by User:ChuckEsoteric08.
Description
The language works on an unbounded binary dequeue which initially has two zeroes. Each command is a statement of such form:
( start-side : if-0 : if-1 : end-side )
start-side and end-side are 0 if they reffer to the bottom of the deque or 1 if they reffer to the top. First it removes a bit from a side reffered to in start-side and executes either if-0 or if-1 based on what bit was removed. if-0 and if-1 consist of binary string which mean that that string is pushed starting from first bit to the last to the side reffered to in end-side, such that string 110 run on deque [0, 1, 1] would turn it into [0, 1, 1, 1, 1, 0] if end-side is 1 and [0, 1, 1, 0, 1, 1] if end-side is 0. if-0 and if-1 themselves can have statements inside them, so (a : 01 (b:c:d:e) :: f) (in which letters would be bits or binary strings) is a valid statement.
Computational class
Blanket is Turing-complete, easiest way is to translate Cyclic tag system into it, however it is also possible to translate Wheel Minsky machine with two registers into it:
- In following translation,
[x]is a unary string of x ones. INC A ybecomes:
(1:10[y]::1)
INC B ybecomes:
(1:(0:01:11:0)0[y]::1)
DEC A ybecomes:
(1:(1:0::1)0[y]::1)
DEC B ybecomes:
(1:(0:0::0)0[y]::1)
IF A ybecomes:
(1:(1:00[y]:101:1)::1)
IF B ybecomes:
(1:01(0:0(1::[y]:1:1):1:0)::1)
JMP xbecomes:
(1:0[y]::1)