On Tue, Sep 27, 2016 at 7:47 AM, Marius Millea <mariusmil...@gmail.com> wrote: >> 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).
No. > > 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? It's not the JIT requirement, rather the performance trade off > > 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 > > >