So... you want a method name globally accessible, but you don't want to put 
in global scope?  Maybe you should use a Module instead of a let block.  
Your first method definition goes in the scope of "MyModule", and then 
later on you can add to that method definition by defining a function: 
"MyModule.myFunction(x::MyType) = ..."

See: http://julia.readthedocs.org/en/latest/manual/modules/

On Thursday, July 23, 2015 at 4:08:45 PM UTC-4, Vinuth Madinur wrote:
>
> Please ignore the "anonymous function" part above. 
>
> I'm creating a function in my macro inside a let block so that it doesn't 
> pollute the surrounding scope. Later on, when the same macro is used on a 
> different expression, I wont be able to access this same function to extend 
> it inside another let block. I was looking for a way to do this.
>
>
>
> On Friday, July 24, 2015 at 1:12:36 AM UTC+5:30, Vinuth Madinur wrote:
>>
>> It's a little complicated scenario to explain. It's like this:
>>
>> I have a macro that replaces an expression with a function whose name 
>> isn't fixed / known / is anonymous / created inside a closured scope. Later 
>> on I want the ability to add methods to this.
>>
>>
>>
>> On Friday, July 24, 2015 at 12:57:01 AM UTC+5:30, Tom Breloff wrote:
>>>
>>> Can you tell us more about your end-goal?  I have a feeling that you're 
>>> not thinking about this in a Julian way, but I'm not entirely sure what you 
>>> want to be able to do.
>>>
>>> On Thu, Jul 23, 2015 at 3:21 PM, Vinuth Madinur <[email protected]> 
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> Is there a way to add a method to a generic function during runtime? Or 
>>>> to merge two generic functions? For example:
>>>>
>>>>
>>>> function abc end
>>>> function xyz end
>>>>
>>>> function add_method(method, func)
>>>>       #Add method to func
>>>> end
>>>>
>>>> add_method(xyz) do x::Int
>>>>    x*2
>>>> end
>>>>
>>>> or
>>>>
>>>> add_method(x -> x * 4, abc)
>>>>
>>>>
>>>> Thanks,
>>>> Vinuth.
>>>>
>>>>
>>>>
>>>>
>>>

Reply via email to