>
> Macros are functions evaluated at parse-time. The runtime scope doesn't
> even exist when the macro is called.
That's right, the answer may well have nothing to do with marcos (maybe I
obscured the question by even mentioning them in an attempt to give bigger
context to what I'm trying to accomplish).
I guess it really boils to just "is there a way to eval something in the
current scope". Not knowing much about the internals of all of this, given
that "eval" does exactly that in the global scope, I guess it wouldn't seem
like such a stretch that something exists for the current scope. For
example, in Python it exists,
In [1]: def f(x):
...: return eval("x+1")
In [2]: f(3)
Out[2]: 4
But perhaps the JIT requirements make it impossible in Julia?
julia> function f(x)
eval(:(x+1))
end
f (generic function with 1 method)
julia> f(3)
ERROR: UndefVarError: x not defined
in eval(::Module, ::Any) at ./boot.jl:234
in f(::Int64) at ./REPL[1]:2