ArrowQueue
- This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
ArrowQueue is a two-dimensional esolang created by User:ChuckEsoteric08 inspired by Re:direction
Specification
ArrowQueue uses a single queue which stores Instruction Pointer's direction. There are following commands:
* - turn Instruction Pointer (IP) clockwise ~ - enqueue current direction + - dequeue element from the queue and set direction to it
Other characters are ignored. Program halts when it tries to dequeue from an empty queue or IP moves out of bounds.
Computational class
It is possible to translate Tag system and Cyclic tag system into the language. String is encoded as a queue with one direction representing a zero and other representing a one. As an example here is unfinished Cyclic Tag program with initial data 1 and productions (011, 10, 101):
~* ** * * * * * + * * ** ** ~ * ~~ +~* * * * * ~ +~* * * ~ * * ** * * * ~ x * * ** * * * * * **
The only thing that should be done is to move to the start of a program if last deleted bit was 1 and the author dosen't know how to do it. "x" here is the location of IP after right was dequeued and (right, down, right) is enqueued, currently moving rightwards.
It is also possible to translate Minsky machines into it by encoding registers as a string of 1's seperated by zero and using one of the registers as an instruction pointer