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 >