Ilya Zakharevich wrote:
> As shipped: no. But if this is made a primitive (which I would not
> like), then the only change which is needed is to make the
> tie::multi::range() token to be followed by 3 numbers.
>
> [Aside: Why not make ternary-range operator into 10 :: 20 :: 2 ?]
That would work. My point is that having a stride is a fundamental
feature in other array languages (IDL, Matlab, PDL) and would be
useful in the perl core.
> > Finally as an overload expert what do you think about the proposals
> > to make arrays overloadable objects so one can say things like:
> >
> > @x = 3 * @y;
>
> This is not an overloading issue, this is the context resolution
> issue. IMO, the cryptocontext turns out to be evil with an exception
> of extremely short scripts - and this is with what we have now.
>
> A proposal like this would make a nuisance into a nightmare. Yes, it
> looks nice, but it contradicts many rules, so in the long run it is
> going to be a significant step back.
>
> ...Unless the whole idea of cryptocontext is turned to become something else...
I am not sure what you mean by "cryptocontext"?
I guess the motivation here is to make non-core arrays (such as PDL
objects) look as much as possible like Perl arrays to simplify the
appearance to users.
It's really hard to explain why people should use @x[1..10] for
perl arrays and $x->slice("1:10") for PDL arrays!
I can see that allowing expressions on @x would require considerable
changes to perl core.
Is there a nice way to resolve this problem?
Karl