Evaluates the expression with the provided variables.
variables
@override num eval(Map<String, num> variables) => function(left.eval(variables), right.eval(variables));