Numobin

Numobin is a esoteric programming language invented by User:Zzo38. The memory is a stack, a boolean value, and a set of variables. The commands are:
 * # = Push the number onto the stack of the number of # that are in the program before this one.
 * [ = Begin loop while boolean value is true
 * ] = End loop
 * - = Take 2 numbers from stack and push absolute value of difference
 * { = Pop value, and variable name, set value of variable
 * } = Pop variable name, push value of variable
 * ~ = Swap top 2 entry of the stack
 * * = Toggle boolean value
 * =</tt> = Pop 2 numbers from stack, toggle boolean value if values are equal
 * (</tt> = Pop value from stack, output ASCII character or number
 * )</tt> = Input ASCII character or number, push to stack
 * ?</tt> = Set number to a random number for starting with #

0 = ##-##-- 1 = ##- 2 = ##-#-##-#--##-- 3 = ##-#-##-#-- See if there is shorter way of these things (and more numbers), without changing anything after it is done, other than push the number onto stack.