Huit

Huit means 'eight' in French. The joke is that 'eight' can refer to the eight ball, and cue sounds like 'queue'. Huit is a one-dimensional queue-based Turing-complete esoteric programming language created by User:TheCanon2.
==Commands==
Huit has a single queue. The data in the queue can only be a float or a string. Huit has fifteen commands.
===Arithmetic operators===
Command	Action
+ 	Dequeue the first two items, enqueue the sum.
- 	Dequeue the first two items, enqueue the difference between the first item dequeued and the second item dequeued.
* 	Dequeue the first two items, enqueue the product.
/ 	Dequeue the first two items, enqueue the quotient of the first item dequeued and the second item dequeued.
% 	Dequeue the first two items, enqueue the modulo of the first item dequeued and the second item dequeued.
The plus and modulo are the Python plus and modulo, meaning they can be applied to strings.
===Computational operations===
Command	Action
&x 	Enqueue a float with the value x.
&"s" 	Enqueue a string with the value s.
: 	Duplicate the first item of the queue.
? 	Dequeue.
(s) 	Define a jump location with label s.
[c] 	Dequeue the first item, then follow switch case c.
The switch case can take any amount of parameters. For example, statement [a,b,c,d] means goto a if the value dequeued was 0 or empty, goto b if the value dequeued was 1, goto c if the value dequeued was 2, goto d if the value is anything else. The last statement is always the 'anything else' statement.
Commas, brackets, and square brackets should never be used in the name of a jump location.
===I/O functions===
Command	Action
> 	Dequeue and print the first item.
>' 	>, but convert into an ASCII character if a float.
< 	Enqueue a character from the input.
<' 	Prompt the user for a float and enqueue the entire input.
==Examples==
===Hello, World!===
&"Hello, World!">
===Truth machine===
<':[0,1](1)::>[1](0)>
===Shape machine===
(shape)<'&3+&0.86*:>[shape]
===Cat===
(cat)<>[cat]
If there is nothing to dequeue, nothing will be dequeued.
===99 bottles of beer===
&100(Loop)&1&"%d bottles of beer on the wall.":&1&"%d bottles of beer.":&1
&"Take one down, pass it around,\n%d bottles of beer on the wall.":&2
-:?-:?-:?-:?%%%:?>>>:[End,End,Loop](End)
Uses Python modulos to replace %d with the appropriate number. Newlines have no meaning in Huit.
===XKCD Random Number===
&4>
===Print all of Unicode===
&0&0>'(A)&1+::>'[A]
===Computational class===
====Cyclic tag system====
Huit is Turing-complete for cyclic tag system can be trivially compiled into it.
&0 Write 0 to the data-string.
&1 Write 1 to the data-string.
? Delete the leftmost bit.
&A[Loop] Repeat the loop.
However, this process always loops.
====Minsky machine====
A more concrete proof of Turing-completeness would be to compile a section 14.2 Minsky machine with two sub-registers into Huit.
&2* Increment sub-register 2
&3* Increment sub-register 3
&2:%:?[div,pass](div)&2/:[jump](pass) Conditionally decrement sub-register 2
&3:%:?[div,pass](div)&3/:[jump](pass) Conditionally decrement sub-register 3
==Implementations==
The Python script in this article is an incomplete interpreter.
Category:Languages
Category:Queue-based
Category:Turing complete
Category:Unimplemented
Category:2024