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) ?
>>
>>

Reply via email to