Finish funciton plots strictly on max-range value.

My first change was a bit broken. E.g. if we draw function with `min-range = 4` and `max-range = 38` then last drawing point was `38.00000184774399`. It may cause problem because some functions may not be defined outside specific range: [4, 38] in our case.  
In this commit I explicitly add `max-range` to list of values instead of using `(+ step-size max-range)` as upper bound.