Nathan Torkington wrote:
> > (1) The current
> >
> > $pdl->slice("0:$n,(0)");
> >
> > syntax sucks.
>
> Would:
>
> $pdl->[0:$n][0][:]
>
> suffice? I figure this would translate into something like:
>
> $pdl->subscript( 0, $n )
> ->subscript( 0 )
> ->subscript( undef, undef )
>
> That is, you can overload [] on objects but instead of being @{}
> as it currently is (where your overload sub returns an array ref)
> you get to handle the subscript operation yourself.
Some comments:
"->" really sucks as something to routinely type in to a interactive shell
all the time. I hate it.
$pdl[0:$n][0][:]
would be fine as a syntax
BUT we really want the subscription operation to be fast and efficient -
which means doing it with one subroutine call not 3. This is where the
$pdl[0:$n,0,:] form wins as you can imaging the subroutine just seeing
"0:$n,0,:" in one arg.
Also another common idiom in PDL is:
$pdl[0:$n,(0),:]
where the () means - lose this dimension of size unity. I.e. make the result
MxN rather than Mx1xN. How would this be handled?
>
> > (2) We see the need for a multidimensional, packed and typed array.
> >
> > The question is: should such an array type be part of perl6 or should it
> > be left to a module to implement such types?
>
> I vote module.
I guess having true multidim arrays in the core would lead to a [a,b,c[
slicing syntax.
Karl