Hey Fil, More directly answering your question:
julia> eval(:(f($:(:abc)))) or eqivalently julia> eval(:(f($(Expr(:quote, :abc))))) works. Best, Jake On Wednesday, February 12, 2014 12:30:13 AM UTC-5, Jake Bolewski wrote: > > you need to take advantage of quote, see: > https://groups.google.com/forum/#!topic/julia-dev/YxTEkUJcwL8 > > Jake > > On Tuesday, February 11, 2014 11:57:16 PM UTC-5, Fil Mackay wrote: >> >> Is there not an ambiguity of operator : between expressions and symbols? >> I am trying to create an expression that calls a function with a symbol >> parameter, that comes from a string in context of the expression creator: >> >> function f(s::Symbol) >> end >> >> f(:abc) # works >> >> # get symbol name from a string >> name = "abc" >> f(symbol(name)) # works >> eval(:(f(symbol(name)))) # still works >> >> # moving over to using the context of the expression creator to specify >> the symbol: >> eval(:(f($(symbol("abc"))))) # nope, this generates: f(abc) >> eval(:(f(:(:($(symbol("abc"))))))) # bad, generates: f(Expr) >> >> # workaround: >> eval(:(f(:($(symbol("abc")))))) # almost, but generates: f(symbol("abc")) >> not f(:abc) >> >> Is there a trick to generate a more direct expression that eval() to: >> f(:abc) ? >> >>
