On Sun, Nov 20, 2005 at 09:11:33PM +0100, Ingo Blechschmidt wrote:
: Also, is specifying other, non-slurpy arguments prior to a slurpy
: @;multidim_arglist legal?

Yes, though we have to be careful about what happens when we bind the
entire first dimension and then get a <== boundary.  That's probably
not intended to produce an empty first dimension.  On the other hand,
maybe it just falls out of the policy that .[] is a null dimension
unless you actually put something there, and maye that extends to
.[;stuff] and even .[;;;;;;;;stuff].

: E.g.:
:     sub bar ($normal_var, @;AoA) {...}
:     bar 42, @array1, @array2;
:     # $normal_var is 42,
:     # @AoA        is ([EMAIL PROTECTED], [EMAIL PROTECTED])
:     # Correct?

No, these are specifically not AoA.

: The existence of a @array variable does not imply the existence of a
: @;array variable, right?

I think it probably does, or should.  @;array is sugar for something
like [;[EMAIL PROTECTED], presuming that .specs clumps its slices into
single iterators (which it doesn't), and also presuming that you could
use [;] in a declarative context (which you can't).  So it's more like
[;[EMAIL PROTECTED], which is an array of slice generators each of which 
is a sublist of iterators.  It's probably not an array of arrays
internally, but just a list of specs with some of them marked as starting
a new dimension.

We originally were modeling the multidimension stuff on AoA, but we
kept getting tangled up in intentional vs unintentional brackets.
We need to be able to support the userland flat view of an array and
still be able to get at its specs anyway, so this is basically trying
to handle multislices/multidims/multipipes with the same underlying


Reply via email to