x
x
x


Do so in a way which:

 does not involve string manipulation of the input source code
 is plausibly extensible to a runtime-chosen set of bindings rather than just x
 does not make x a global variable


or note that these are impossible.



See also

 For more general examples and language-specific details, see Eval.
 Dynamic variable names is a similar task.


without javascript_semantics
requires("1.0.1")
include eval.e

function eval_with_x(string expr, integer a, b)
    return eval(expr,{"x"},{{"x",b}})[1] -
           eval(expr,{"x"},{{"x",a}})[1]
end function

?eval_with_x("integer x = power(2,x)",3,5)
