On Wed, Oct 19, 2016 at 10:33 PM, Alex Mellnik <a.r.mell...@gmail.com>
wrote:

> Yichao,
>
> I'm afraid I'm not following -- could you expand on that a bit?  Thanks,
>

https://github.com/JuliaLang/julia/issues/265


>
> Alex
>
> On Wednesday, October 19, 2016 at 4:41:30 PM UTC-7, Yichao Yu wrote:
>
>> On Oct 19, 2016 7:26 PM, "Alex Mellnik" <a.r.m...@gmail.com> wrote:
>> >
>> > Here's my bizarre find of the day.  Most functions can be overwritten
>> without problems:
>> >
>> > function add7(i)
>> >     7 + i
>> > end
>> > Out[1]:
>> > add7 (generic function with 1 method)
>> > In [2]:
>> >
>> > add7(0)
>> > add7(0)
>> > Out[2]:
>> > 7
>> > In [3]:
>> >
>> > function add7(i)
>> >     9 + i
>> > end
>> > function add7(i)
>> >     9 + i
>> > end
>> > Out[3]:
>> > add7 (generic function with 1 method)
>> > WARNING: Method definition add7(Any) in module Main at In[1]:2
>> overwritten at In[3]:2.
>> > In [4]:
>> >
>> > add7(0)
>> > Out[4]:
>> > 9
>> >
>> > However, others can not:
>> >
>> > using DataFrames
>> > df = DataFrame(A=[1,2,3], B=["A", "B", "C"])
>> > println(df)
>> > 3×2 DataFrames.DataFrame
>> > │ Row │ A │ B   │
>> > ├─────┼───┼─────┤
>> > │ 1   │ 1 │ "A" │
>> > │ 2   │ 2 │ "B" │
>> > │ 3   │ 3 │ "C" │
>> > In [3]:
>> >
>> > row[:A] > 2
>> > function filter(row)
>> >     if row[:A] > 2
>> >         return 1
>> >     else
>> >         return 3
>> >     end
>> > end
>> > Out[3]:
>> > filter (generic function with 1 method)
>> > In [4]:
>> >
>> > [filter(row) for row in eachrow(df)]
>> > [filter(row) for row in eachrow(df)]
>> > Out[4]:
>> > 3-element Array{Int64,1}:
>> >  3
>> >  3
>> >  1
>> > In [5]:
>> >
>> > rand() > 0.5
>> > function filter(row)
>> >     if row[:A] > 2
>> >         return 2
>> >     else
>> >         return 4
>> >     end
>> > end
>> > WARNING: Method definition filter(Any) in module Main at In[3]:2
>> overwritten at In[5]:2
>> > Out[5]:
>> > filter (generic function with 1 method)
>> > .
>> > In [6]:
>> >
>> > [filter(row) for row in eachrow(df)]
>> > Out[6]:
>> > 3-element Array{Int64,1}:
>> >  3
>> >  3
>> >  1
>> >
>> > What is it about this second example that prevents the newer method
>> from being used?
>>
>> Nothing about it but how you use it. It's inlined to the comprehension.
>>
>>

Reply via email to