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 mechanism. Larry