would you mind updating this, I just ran it and did not know how to 
   change " {T <: Furnature}" to "Use Any[a,b, ..] instead", thank you

julia> abstract Furnature

julia> type Table <: Furnature
       end

julia> f({T <: Furnature})(::Type{T}) = 10

WARNING: deprecated syntax "{a,b, ...}".
Use "Any[a,b, ...]" instead.
ERROR: syntax: invalid method name "f({T<:Furnature})"

julia> f(::Furnature) = 17
f (generic function with 1 method)

julia> f(Furniture)
ERROR: UndefVarError: Furniture not defined

julia> f(Table)
ERROR: MethodError: `f` has no method matching f(::Type{Table})

julia> f(Table())
17



On Thursday, July 23, 2015 at 1:59:43 PM UTC-4, Tom Breloff wrote:
>
> And to be complete, depending on your use-case:
>
> julia> abstract Furniture
>
> julia> type Table <: Furniture end
>
> julia> f(::Furniture) = 10
> f (generic function with 1 method)
>
> julia> f(Table())
> 10
>
>
>
> On Thursday, July 23, 2015 at 1:01:39 PM UTC-4, Vinuth Madinur wrote:
>>
>> Yes!
>>
>> Thats awesome.
>>
>> Thanks,
>> Vinuth.
>>
>>
>> On Thursday, July 23, 2015 at 10:10:04 PM UTC+5:30, Seth wrote:
>>>
>>> Is this what you're looking for?
>>>
>>> julia> abstract Furniture
>>>
>>> julia> type Table <: Furniture end
>>>
>>> julia> f{T<:Furniture}(::Type{T}) = 10
>>> f (generic function with 1 method)
>>>
>>> julia> f(Furniture)
>>> 10
>>>
>>> julia> f(Table)
>>> 10
>>>
>>>
>>>
>>> On Thursday, July 23, 2015 at 9:34:12 AM UTC-7, Vinuth Madinur wrote:
>>>>
>>>> Hi,
>>>>
>>>> Is there a way to do function dispatch on subtypes? For example, 
>>>> consider the following:
>>>>
>>>> > abstract Furniture
>>>>
>>>> > type Table <: Furniture end
>>>>
>>>> > f(::Type{Furniture}) = 10
>>>>
>>>> > f(Furniture)
>>>> 10
>>>>
>>>> > f(Table)
>>>> Error.....
>>>>
>>>> How do I enable the same function to be called when I do f(Table)?
>>>>
>>>>
>>>> Thanks,
>>>> Vinuth.
>>>>
>>>>

Reply via email to