`Implement a mathematical expression evaluator`
Basically take a string such as:
"(45 - 5) / 10"
and find the result. The engine must support basic substitution as well, example:
"(width / 2) - offset"
Here are the rules:
Feel free to use whatever syntax you like for the variables ('variable', ${variable}, :variable, etc).
An example implementation might look like this:
# prints 6 print evaluate("10 - 6 + 2")
# prints 2 print evaluate("(10 - 6) / 2")
# prints 4 print evaluate("poo - 12 / 3", {poo: 24})
To run this, use the following command line:
java -jar eval.jar "2 + 2"
or to pass a set of variables, use ECMA style syntax
java -jar eval.jar "poo + pee" "{poo: 2, pee: 4}"
Examples:
python calc.py "2 + 2" python calc.py "2 + 3.5*(1 - 7e-3)"
With variable substitution:
python calc.py "$poo + $pee" poo:2 pee:4
There are two files: the original, eval.py and the Gabriel modified eval2.py. eval2.py allows for spaces in equations and variable names that can be found within other variable names.
Examples:
python eval.py 2 + 2 python eval.py 2+3.5*(1-7e-3)
With variable substitution:
python eval2.py "$poo + $pee" poo:2 pee:4