I've been thinking more about your suggestion with Array{Any, D}. The type
of the entries (Vector{Float64} in my case) are not inferred. Is there a
way to inform Julia that 'Any' is actually Vector{Float64} for all entries.
I.e., something like Array{Vector{Float64}, D} ?
On Thursday, June 2, 2016 at 12:04:51 AM UTC+2, Cedric St-Jean wrote:
>
> I really doubt that it can be expressed this way, because Julia will do
> pattern matching/unification on the type of `bar`, and it would have to
> know that -1 is the inverse of +1 to unify D+1 with the type of the input
> array. Can you give more context about what you're trying to do? Why can't
> you have `bar::Array{Any, D}`?
>
> You can also put D inside the constructor
>
> type Foo{E}
> bar::Array{Any, E}
> end
> Foo(D::Int) = Foo(Array{Any, D+1}())
>
> Foo(1)
>
> or use typealias
>
> On Wednesday, June 1, 2016 at 2:56:28 PM UTC-4, Robert DJ wrote:
>>
>> I have a custom type with a TypePar denoting a dimension and would like
>> to define the following:
>>
>> type Foo{D}
>> bar::Array{D+1}
>> end
>>
>> However, this does not work. As D is only 1 or 2 it would OK with
>>
>> type Foo{1}
>> bar::Matrix
>> end
>>
>> type Foo{2}
>> bar::Array{3}
>> end
>>
>> but unfortunately this isn't working, either.
>>
>> Can this problem be solved?
>>
>> Thanks!
>>
>