Queueue

From Esolang
Jump to navigation Jump to search

Queueue (intentional misspelling of Queue) is an esoteric programming language made by User:Rehydratedmango.

Overview

All data in Queueue is stored in queues, which can be further nested in bigger queues. Program execution begins with a single master queue.

Commands

Command Description
queue # to "queue" Queue an integer to a queue
queue "queue" to "queue" Queue a queue to another queue
new "queue" Define a new queue
forget "queue" Delete a queue
queue # to "queue" ?"queue"=="queue" Queue an integer to a queue if two queues are equal
queue "queue" to "queue" ?"queue"=="queue" Queue a queue to a queue if two queues are equal
output from "queue" Dequeue the next item in the queue and print it. If the value is a queue, each value inside the queue will be printed as an ASCII character
input to "queue" Get input from the user. Each character they type will be queued as an ASCII code
transfer from "queue" to "queue" Dequeue the next item in the first queue and queue it to the second queue
queue $"string" to "queue" Queue every ASCII code, one after the other, to a queue
in "queue" do {code} For every value in the queue, dequeue it and execute some code. The dequeued value can be referenced with "i"
for # do {code} Repeat some code # times. The current loop number can be referenced with "i"
while "queue"=="queue" do {code} While the two queues are equal, execute some code
# + # Returns the sum of two integers
# - # Returns the difference of two integers
# * # Returns the product of two integers
# / # Returns the quotient of two integers
# % # Returns the remainder of two integers

A queue name beginning with # (as in #"main") refers to the length of the queue. This is the only way to store variables in Queueue.

Queueue has some special queue names that cannot be deleted. These are:

  • main (main queue)
  • empty (an empty queue; cannot be modified)
  • garbage (queue is automatically cleared after every instruction)
  • i (queue containing the current loop data in loops)

Examples

Hello, world!

new "hello"
queue $"Hello, world!" to "hello"
queue "hello" to "main"
output from "main"

Truth machine

new "state"
input to "state"
new "one"
queue $"1" to "one"
while "state"=="one" do
{
 queue "state" to "main"
 output from "main"
}
queue "state" to "main"
output from "main"

Fibonacci

new "n-2"
new "n-1"
new "n"
queue 0 to "n-1"
while "empty"=="empty"
{
 queue #"n-2"+#"n-1" to "main"
 output from "main"
 for #"n-2"+#"n-1" do
 {
  queue 0 to "n"
 }
 transfer "n-2" to "garbage"
 transfer "n-1" to "n-2"
 transfer "n" to "n-1"
}