# Bias

Bias is an esolang by User:PythonshellDebugwindow.

## Commands

### Outside biases

Where B is the value of the command's preceding bias (or 0 if it has no preceding bias):

Command Effect
+ Increase the current cell by B
- Decrease the current cell by B
/ Set the current cell to an input integer
= Set the current cell to an input character
& Output the current cell as an integer B times
' Output the current cell as a character B times
" Increase the cell pointer by B
* Halt the program
: Jump forwards B commands (not including biases)
; Jump backwards B commands (not including biases)
( Starts a bias (see #Biases)
) Ends a bias

### Inside biases

Here, B is initialized to 1 if there is no preceding bias:

Command Effect
+ Increment the value by B
- Decrement the value by B
* Multiply the value by B
\ Divide the value by B (integer division)
/ Set the value to the current cell
= Set the value to 0

Each of these commands may be preceded by a bias. This nesting can be arbitrarily deep. A bias can also be preceded by another bias, in which case that bias's value will be initialized to the preceding bias's value instead of 1.

## Biases

Biases, this language's namesake, affect the "magnitude" of the command they directly precede. The result of a bias when executed is known as its 'value' (also B in #Commands). The value starts as 0.

## Examples

### Hello, World!

Currently prints Hello
(++++++++(+++++++++)*)+'(++++)+(+++++(+++++)*)+'(+++++++)+''(+++)+'

='(++);

### Truth-machine

/(/(+++)*):&*&(+);

### Turing-completeness proof

Brainfuck where [ jumps if nonzero and ] jumps right back to [ can be compiled into Bias with the following translations:

Command Translation
+ (+)+
- (+)-
+ (+)+
< (-)"
> (+)"
, =
. (+)'

Looping is a bit more difficult, but it can be done. You have to replace all [s with +(off(+(/)*/\)*\): where off is the right-offset of the matching ]; this exits the loop if the current cell is zero. Replace the ]s with (off-); where off is the left-offset of the matching [.