... happy fingers problem ... it makes sense to have inner constructors for uninitialized *fields*
On Wednesday, February 5, 2014 12:11:10 AM UTC-5, milktrader wrote: > > btw, why don't constraints get handled by an outer constructor in the > first place? > > It makes sense to have inner constructors for unitialized > > On Tuesday, February 4, 2014 11:23:51 PM UTC-5, milktrader wrote: >> >> Thanks John, I finally figured it out after hacking around for a couple >> hours. It's not intuitive, that's for sure! >> >> On Tuesday, February 4, 2014 10:57:52 PM UTC-5, John Myles White wrote: >>> >>> Yup, this is one of the quirkier things about parametric types. You need >>> to echo the inner constructor as an outer constructor. >>> >>> — John >>> >>> On Feb 4, 2014, at 7:37 PM, milktrader <[email protected]> wrote: >>> >>> > julia> immutable Foo{T,N} >>> > x::Vector{Int} >>> > y::Array{T,N} >>> > z::Vector{ASCIIString} >>> > >>> > function Foo(x::Vector{Int}, y::Array{T,N}, >>> z::Vector{ASCIIString}) >>> > new(x,y,z) >>> > end >>> > >>> > end >>> > >>> > julia> foo = Foo([1], [2], ["bar"]) >>> > ERROR: no method Foo{T,N}(Array{Int64,1}, Array{Int64,1}, >>> Array{ASCIIString,1}) >>> > >>> > Without the inner constructor, an object is created no problem. >>> >>>
