>> (10) - 2 + 4;
[0] 4
>> 2 * 0x03
[1] 6
>> $ ^ $$
[2] 1296
>> $2 % 5
[3] 1
$ cargo install --locked --git https://github.com/Techno-coder/calculator
$ calculator
Basic mode does not update on each key press and may work better for less advanced terminals.
$ calculator -b/--basic
Evaluation mode reads from the standard input pipe and outputs results directly.
$ echo expression | calculator -e/--evaluation
In order of precedence:
+- Add-- Minus*- Multiply/- Divide%- Modulo^- Power
0x000a- Hexadecimal0b1010- Binary0o0012- Octal1.0- Floating1e1- Scientific
$- Last evaluation result$$- Second last evaluation result$$...$- Arbitrary position evaluation result$0- Variable with identifier0$aa- Variable with identifieraa
>> function argument
Functions take the term immediately to the right. Whitespace is required after the function name.
abs- Absolute valuesqrt- Square rootcbrt- Cube rootln- Natural logarithmlog2- Binary logarithmlog10- Decimal logarithm
sin- Sinecos- Cosinetan- Tangentasin- Inverse sineacos- Inverse cosineatan- Inverse tangent
The trigonometric functions can take and return degrees by appending ':
>> asin' 1
[0] 90
e- Euler numberpi- Pi (3.14)
;- Coalesce operator
The coalesce operator combines the previous two terms into a single node. This eliminates the need for parentheses.
>> 10 - 2 + 4;
is equivalent to:
>> 10 - (2 + 4)
Repetitions of the coalesce operator will combine more than two terms:
>> 1 / 1 + 2 + 3;;
is equivalent to:
>> 1 / (1 + 2 + 3)
Sometimes a combined term is nested inside another:
>> 1 / (2 - (3 + 4))
This can be achieved by leaving whitespace after the first coalescence:
>> 1 / 2 - 3 + 4; ;
