It Is Not What It Is

From Esolang
Jump to navigation Jump to search

It Is Not What It Is is a joke language created by an unknown person. It takes inspiration from a lot of ideas and joke languages such as Turi and Bf19, as is his first joke language. Its speification is intentionally incomplete.

Commands

This language uses an infinite stack of integers and floats. Every command has a 0.0000001 chance of hanging up the system.

   0-9    push that number on the stack
   A-F    push 10-15
   {12.3} push everything between the braces as a single (decimal) number
   #c     push the ascii of c (for example)
   +-*/\  x, y -- x(op)y (\ is integer division). Dividing or modulo by zero would do something completely random.
   %      x, y -- x mod y
   ^      x, y -- x**y
   <      x, y -- x<y ? 1 : 0
   >      x, y -- x>y ? 1 : 0
   wer    pop x, push INTERCAL unary and, or and xor of x. This instruction is by its very definition obsolete.
   G      be turing complete.
   _      pop and print top stack value
   @      pop top stack value, mod 256 and print as ascii character
   '      get char input and push it mod 256
   n      print a newline
   =      print the stack as space seperated numbers.
   ~      print the stack as ascii   
   ;      get number input and push it
   :      duplicate top stack value
   $      swap top two stack values
   ,      discard top stack value
   R      reverse the stack
   |      push length of stack
   &      pop a number and push its ascii digits (and decimal point).
   X      pop the stack and push it to the x register
   x      push everything in the x register to the stack and empty it.
   r      push a random integer into the x register. if it's 0, hang up the system forever.
   Q      turn the stack into a queue. There is now way to turn it back.
   q      print the program's source code.
   h      print "Hello, World!"
   s      interpret stdin as IINWII code. It can erase your hard disk if you use it to cheat in a golfing challenge.
   []     code blocks
   i      if/else statement - if top of stack is nonzero, do last code block, else the second next (this can be omitted)
   w      while loop - repeat last code block until top of stack is zero.
   z      break out of loop or end program
   g      do nothing
   L      if running the program with all L's remove will cause infinite loop, halt the program with an error.
   p      undefined behavior. DO. NOT. USE. IT.
   j      pop x, jump to the xth line. This has a 0.01% chance that it will blow up the computer.
   Z      if P=NP, erases your hard disk.
   d      The use of this instruction is discouraged.
   f      The use of this instruction is forbidden.
   .      the please modifier. Must be used before 1 in 6 commands, but less that 2 in 3. Taken from INTERCAL.
   H      starts hq9+ mode.
   k      starts bf mode.
   u      starts underload mode.

bf mode

This turns on when you enter the k command. These are the only commands available, it turns the esolang into a bf derivative.You still need to use the please (.) command.

   +      add one to cell
   -      subtract one from cell
   <      pointer left
   >      pointer right
   _      print cell
   @      print cell as ascii
   *      multiply cell by next
   /      divide cell by next
   j      push cell to stack (only way to access the stack)
   []     codeblocks.
   i      if cell is nonzero.
   w      while cell is nonzero.
   ?      set cell to random float between 0 and 1.
   d      undefined behavior. Do not use it.
   E      if cell is 0, turn off bf mode.

hq9+ mode

This is like bf mode, but its now an HQ9+ derivative.

   H      print "Hello world"
   Q      quine
   N      99 bottles of beer
   +      increment accumulator
   ,      divide accumulator by ten.
   F      print fizzbuzz from accumulator
   E      turn off hq9+ mode and push accumulator to stack.

underload mode

This is like bf mode, but it takes underload instructions, as well as this command:

   E      turn off underload mode and push ascii values of top string of underload stack of main stack reversed.

examples

truth machine:

   .;.[:_]w_

hello world:

.HH

no:

.pdf

do not:

.0j

please dont:

.kd