On Wed, 28 Aug 2002, Luke Palmer wrote: > > Second, is there a prototype-way to specify the arguments to "for" > > (specifically, the first un-parentesized multidimensional array argument)? > > In other words, is that kind of signature expected to be used often enough > > to justify not forcing people to explicitly extend the grammar? > > If you're talking about parallel iteration, I know what you mean.
Yeah, that's what I was talking about, though IIRC "parallel iteration" refers to how the data is used. I may be on crack here, but I think that stuff before the arrow is just a multidimensional array, like my @a = (1, 2; 3, 4) but, since we're expecting it, the parens are optional. > I think there's a time for a special case, and that's one of them. I probably agree here (if mucking with the parser is a straightforward thing to do). > If you're talking about the regular syntax: > > for @a, @b -> $x { ... } > > Would that be: > > sub rof (array *@ars, &body) {...} > > or > > sub rof (*@ars is array, &body) {...} Being able to specify fixed arguments after a splat looks illegal, or at least immoral. It opens the door to backtracking in argument parsing, e.g.: sub foo (*@args, &func, *@more_args, $arg, &func) { ... } > Saying specifically a list of arrays. Also, would that list gobble up > everything, or would it actually allow that coderef on the end? I would expect it to be a syntax error, since the slurp parameter has to be the last. /s