On Mon, Apr 18, 2016 at 12:01 PM, Didier Verna <[email protected]> wrote:
> I wrote:
>
>>   The manual seems wrong about this (0.4.5):
>>
>> f(a=1,b=2) = a+2b
>> f(a::Int,b::Int) = a-2b
>> f() # -> 5
>> f(1,2) # -> -3
>>
>> The manual says that both calls give -3. So who's wrong, the language or
>> the manual ?
>
>   So it seems that optional arguments /values/ are tied to the methods:
>
> julia> f(a=1,b=2) = a + b
> f (generic function with 3 methods)
>
> julia> f(a::Int=3,b::Int=4) = a - b
> f (generic function with 5 methods)
>

^^ This will give a warning on 0.5 since you are overwriting a method.

>
> julia> f()
> -1
>
> julia> f(1.5)
> 3.5
>
>
> i.e., there's some memory of different optional values for different
> methods.
>
>
> --
> ELS'16 registration open! http://www.european-lisp-symposium.org
>
> Lisp, Jazz, Aïkido: http://www.didierverna.info

Reply via email to