Any ways to achieve this?

Jameson於 2015年1月7日星期三UTC-8下午7時32分59秒寫道:
>
> the declaration `const A = (2,3)` is not part of the macro environment. 
> values are only seen by functions. whereas macros only see the surface 
> syntax. so the arguments to `@f` are the literals `1` and `:(A...)`
>
> On Wed Jan 07 2015 at 10:04:26 PM Chi-wei Wang <[email protected] 
> <javascript:>> wrote:
>
>> Can ... be applied on macro? I tried this but it didn't compile.
>> macro f(a,b,c)
>>   return :($a+$b+$c)
>> end
>> const A = (2,3)
>> @f(1, A...)
>>
>>
>>
>> Chi-wei Wang於 2015年1月7日星期三UTC-8下午6時45分14秒寫道:
>>
>>> It works! I missed the varargs section in the doc. Thanks!
>>>
>>> Greg Plowman於 2015年1月7日星期三UTC-8下午5時26分02秒寫道:
>>>>
>>>>
>>>> Would the following work?
>>>>
>>>> const A = (1,2,3)
>>>> f(x::Int, y::Int, z::Int) = x+y+z
>>>> f(A...)
>>>>
>>>>
>>>> http://docs.julialang.org/en/release-0.3/manual/functions/#
>>>> varargs-functions
>>>>
>>>>
>>>> On Thursday, January 8, 2015 11:14:23 AM UTC+11, Chi-wei Wang wrote:
>>>>
>>>>> Hi, everyone. I am trying to achieve the effect like the following C 
>>>>> code:
>>>>>
>>>>> #define A 1,2,3
>>>>> void f(int x, int y, int z) {
>>>>> }
>>>>>
>>>>> f(A);
>>>>>
>>>>> Yet the macro in Julia always returns a single expression. Is it 
>>>>> possible to do this?
>>>>>
>>>>

Reply via email to