in reply to perl6/pugs zip + for + subroutine params

Pugs doesn't implement slice and list contexts correctly at the moment.

The idea is that if there is no explicit slice context (=nested array context), the lists are automatically flattened.

So 1, 2, 3 Z  <a b c> should become 1, 'a', 2, 'b', 3, 'c' (unless in slice context). When you use this list in a for loop, you can supply a "pointy block" with two paramters:

for @list -> $a, $b { say "$a: $b" }

There's no way you can ever use [$a, $b] as a formal parameter since it's not an lvalue (we don't have pattern matching in sub calls like haskell has... at least not yet ;-)

You can read more about the syntax at the Official Perl 6 Documentation.