Thanks. That works.

On Saturday, May 16, 2015 at 7:38:49 PM UTC-4, David P. Sanders wrote:
>
> Apologies for the double (now triple) posting. Passing the function as an 
> argument as well, that becomes:
>
> function f1(f, args...)
>     @show args
>     new_args = [modify(arg) for arg in args]
>     f(new_args...)
> end
>
> function f2(a, b)
>     @show a, b
> end
>
> f1(f2, 2, 3.5)
>
> El sábado, 16 de mayo de 2015, 18:36:42 (UTC-5), David P. Sanders escribió:
>>
>>
>>
>> El sábado, 16 de mayo de 2015, 18:26:48 (UTC-5), Eka Palamadai escribió:
>>>
>>> I am trying to write a function f1 that takes a function f2 and 
>>> arguments of f2 as parameters,
>>> modifies some arguments of f2,  and calls f2 with the modified arguments.
>>>
>>> function f1(f2::Function, args...)
>>>   #iterate through the args and modify some of the contents of args
>>>   f2(args)
>>> end
>>>
>>
>> Depending on what you mean by "modifying", you don't need metaprogramming 
>> for this. 
>> For example:
>>
>>  
>> modify(x::Int) = 2x
>> modify(x::Float64) = 3x
>>
>> function f1(args...)
>>     new_args = [modify(arg) for arg in args]
>>     f2(new_args...)
>> end
>>
>> function f2(a, b)
>>     @show a, b
>> end
>>
>> f1(2, 3.5)
>>
>>
>> This gives
>>
>> (4,10.5)
>>
>>
>> David.
>>
>>
>>
>>  
>>
>>>
>>> Any suggestions on how to do this?
>>>
>>> Thanks.
>>>
>>>
>>>
>>>
>>>
>>>  
>>>
>>

Reply via email to