Great, thanks - that makes so much more sense x)
On Tuesday, 18 August 2015 10:10:40 UTC+2, Milan Bouchet-Valat wrote:
>
> Le mardi 18 août 2015 à 00:37 -0700, Kevin Kunzmann a écrit :
> > Hi guys,
> >
> > So, I recently revisited Julia and fooled around a bit with Julia
> > Box. Amazing - this looks like the language I never actually dared
> > dreaming of ;) Keep up the greedy work!
> >
> > That being said, my question might be dumb, but I am struggling with
> > the type system of Julia. I want to guarantee that the arguments to a
> > function are numerical arrays of dimension 1 - how would I best do
> > that in Julia? The problem is that
> >
> > Array{Number, 1}
> >
> > exists as a type, but when I get the type system right it should not
> > have any subtypes except union. Especially
> >
> > Array{Float64, 1} <: Array{Number, 1}
> >
> > evaluates to ' false'. I think I get why this is implemented the way
> > it is, however, would it not be most intuitive to have something like
> >
> > function f(x::Array{Number, 1})
> > x
> > end
> >
> >
> > What would be the 'Julian' way of doing this?
> f{T<:Number}(x::Array{T, 1}) or
> f{T<:Number}(x::Vecotr{T})
>
> You're hitting a subtle point which has to do with covariance vs.
> invariance of types. This part of the manual should make it clearer,
> but feel free to ask for more explanations:
> http://docs.julialang.org/en/latest/manual/types/?highlight=covariance#
> parametric-composite-types
> <http://docs.julialang.org/en/latest/manual/types/?highlight=covariance#parametric-composite-types>
>
>
>
> Regards
>