Le lundi 10 novembre 2014 à 10:07 -0800, David van Leeuwen a écrit :
> Hello,
>
> On Monday, November 10, 2014 11:01:59 AM UTC+1, Milan Bouchet-Valat wrote:
> Le dimanche 09 novembre 2014 à 23:48 -0800, David van Leeuwen a écrit
> :
> > Hello,
> >
> > On Monday, November 10, 2014 1:43:57 AM UTC+1, Dahua Lin wrote:
> > NamedArrays.jl generally goes along this way. However, it
> > remains limited in two aspects:
> >
> >
> > 1. Some fields in NamedArrays are not declared of specific
> > types. In particular, the field `dicts` is of the type
> > `Vector{Dict}`, and the use of this field is on the
> critical
> > path when looping over the table, e.g. when counting. This
> > would potentially lead to substantial impact on
> performance. >
> >
> > I suppose the problem you indicate can be alleviated by making
> > NamedArray parameterized by the type of the key in the dict as
> well.
> Right. Sounds reasonable.
>
>
>
> I've been pondering over how this could be done. NamedArray has a type
> parameter N, and it should then further have N type parameters
> indicating the dictionary type along each of the N dimension. So I
> figure this is going to be a challenging type definition.
A tuple type could be used to give the type of the dimension names.
But there's another issue: `dicts::Vector{Dict}` cannot be defined more
precisely than that if heterogeneous types are allowed for different
dimensions. Is this a case where staged functions could be used to
generate efficient functions to access dictionaries?
Regards