UnicodeLang

From Esolang
Jump to navigation Jump to search

Welcome to UnicodeLang. You are free to add commands.

Rules

  1. No joke commands like "∆ solves the halting problem if the universe is in a black hole"
  2. Go in order of Unicode
  3. Make a new section every time you reach a new Unicode block.
  4. NEW RULE: Don't turn it into Unicoding by adding 5 bajillion conditional commands... 3 is quite enough.
  5. Have fun!

Commands

Plane 0

Basic Latin

U+0000 to U+001f are NOPS.

Unicode Character Description
U+0020 For style, and another NOP.
U+0021 ! Negates the next character.
U+0022 " String type marker.
U+0023 # Number type marker.
U+0024 $ sets a variable called (next 4 symbols) to next symbols until %.
U+0025 % NOP, but very helpful.
U+0026 & Logical AND.
U+0027 ' Character type marker.
U+0028 ( jumps to the corresponding ) if the previous value (after a %)
U+0029 ) NOP, but needed with (.
U+002a * Multiplication operator.
U+002b + does exactly what you think
U+002c , takes the variable string (in the form ????%, used for variables, now referred to as a varstring) and inputs a character into it and appends it to the variable.
U+002d - is also exactly what you think
U+002e . Outputs a varstring or string (again, %-terminated)
U+002f / is division.
U+0030 to U+0039 0 to 9 Numbers. On their own, they return themselves. But otherwise, multiply the previous value by 10 and add this number's value.
U+003a : Exponent (strange choice..)
U+003b ; Root. By the way, ;2 would be square root.
U+003c < Less than.
U+003d = Equal.
U+003e > Greater than.
U+003f ? is the boolean type marker.
U+0040 @ takes the varstring's value-th character in the current line and sets the next variable to the ASCII value of it.
U+0041 A Loops back the amount equivalent to the third topmost stack value of commands if the topmost stack value is not bigger than the second topmost stack value.
U+0042 B Quantum superposition bit (its value is unknown until it is used)
U+0043 C Creates a list of a defined amount of elements that contains numbers from 1 to x.
U+0044 D Jumps to the next % if the top value on stack is 0.
U+0045 E Jumps to the previous % if the top value on stack is 0.
U+0046 F Makes the next number not print.
U+0047 G Jumps to the last % if the top value on stack is 0.
U+0048 H Takes two variables (written after the H, each one %-terminated), and makes them hate each other, meaning if their varstrings are ever the same, they will both randomly change one of the characters in their varstrings so they are no longer the same.
U+0049 I Increments the opcode of every command, and shifts the entire program's code left
U+004A J Pushes the value of the following variable (%-terminated) to the stack. If the variable is a string, push the sum of the Unicode values of each character.

CJK Unified Ideographs

Unicode Character Description
U+5B57 is the Rune type marker.

Examples

Hello world

."Hello, world!"%

XKCD random number

.#4%

alt

.'52'%

Truth machine

G%1F0E%0

Output random character

$var10%$var20%Hvar1%var2%.var1%