# Documentation:FunctionMicroservice

## A math function evaluator (re-scoped)

#### Authors:

Xindao Qi

### What is the problem?

A math function evaluator, which parses and evaluates function expressions.

e.g. f(x) = (sin(2x+1))/(1+exp(tanh(1/log(x^2)))) and x=10

e.g. g(x) = 3+2*5+1/2

supported operators + - * / ^ ( ) sin cos tan sinh cosh tanh log exp

### What is the something extra?

- can handle expressions that cover most of operators of a typical calculator, including unary operators and operators of different precedence.

### What did we learn from doing this?

- translate a grammar to a recursive parser: it's almost line by line translation
- evaluate tree recursively (almost implicitly)