Thank you.
On Friday, August 12, 2016 at 5:56:39 PM UTC-4, Stefan Karpinski wrote: > > But you can define a generic method for f like this: > > f(a::Vector) = f(a, a[1]) > f(a::Vector, a1::Int) = # handle the Int case > f(a::Vector, a1::Float64 = # handle the Float64 case > > > The you would call the function as `f(a)` the way you want to. Note that > the dispatch that chooses which method to call will be done at runtime, > which will be a bit slow (no worse than other dynamic languages, though). > > On Fri, Aug 12, 2016 at 5:52 PM, Kristoffer Carlsson <kcarl...@gmail.com > <javascript:>> wrote: > >> No, since the only thing the compiler sees is Vector{Any}. >> >> >> On Friday, August 12, 2016 at 11:36:54 PM UTC+2, Chris Stook wrote: >>> >>> Is there a way to dispatch on the type of the first element of an array >>> without passing the first element as a separate argument. >>> >>> for example: >>> >>> a = Array{Any,1} >>> >>> function f(a::Array{Any,1}, a1::Int) >>> # do int stuff here >>> end >>> function f(a::Array{Any,1}, a1::Float64) >>> # do float stuff here >>> end >>> >>> # call like this >>> f(a, a[1]) # better way? >>> >>> # would prefer to call like this >>> f(a) >>> >>> Thanks, >>> Chris >>> >> >