RosettaCodeData/Task/Runtime-evaluation-In-an-environment/Julia/runtime-evaluation-in-an-environment-2.julia
2023-07-01 13:44:08 -04:00

9 lines
285 B
Text

function evalwithx(expr::Expr, a, b)
a = eval(quote let x = $a; return $expr end end)
b = eval(quote let x = $b; return $expr end end)
return b - a
end
evalwithx(expr::AbstractString, a, b) = evalwithx(parse(expr), a, b)
evalwithx(:(2 ^ x), 3, 5)
evalwithx("2 ^ x", 3, 5)