Re: Multidimensional argument list binding (*@;foo)

2005-11-21 Thread Larry Wall
On Mon, Nov 21, 2005 at 07:49:16PM +0100, Ingo Blechschmidt wrote: : Aha! FYI, I got that interpretation from r6628 of S09 [1]: : > The following two constructs are structurally indistinguishable: : > : > (0..10; 1,2,4; 3) : > ([0..10], [1,2,3,4], [3]) Sorry, started revising that one a c

Re: Multidimensional argument list binding (*@;foo)

2005-11-21 Thread Larry Wall
On Mon, Nov 21, 2005 at 03:48:30PM +, Luke Palmer wrote: : To illustrate: : : sub foo ([EMAIL PROTECTED]) { : say [EMAIL PROTECTED]; : } : sub bar (*@;a) { : say +@;a; : } : foo(1,2,3; 4,5,6); # 6 : bar(1,2,3; 4,5,6); # 2 : : That is, the regular [E

Re: Multidimensional argument list binding (*@;foo)

2005-11-21 Thread Larry Wall
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 proba

Re: Multidimensional argument list binding (*@;foo)

2005-11-21 Thread Ingo Blechschmidt
Hi, Luke Palmer wrote: > On 11/21/05, Ingo Blechschmidt <[EMAIL PROTECTED]> wrote: >> Hm. How is (*@;AoA) different from (Array [EMAIL PROTECTED]) then? (Assuming >> that >> foo(@a; @b) desugars to foo([EMAIL PROTECTED], [EMAIL PROTECTED]).) > > Well, it's not at all, under that assumption. But

Re: Multidimensional argument list binding (*@;foo)

2005-11-21 Thread Luke Palmer
On 11/21/05, Ingo Blechschmidt <[EMAIL PROTECTED]> wrote: > Hm. How is (*@;AoA) different from (Array [EMAIL PROTECTED]) then? (Assuming > that > foo(@a; @b) desugars to foo([EMAIL PROTECTED], [EMAIL PROTECTED]).) Well, it's not at all, under that assumption. But that assumption is wrong. I thi

Re: Multidimensional argument list binding (*@;foo)

2005-11-21 Thread Ingo Blechschmidt
Hi, Luke Palmer wrote: > On 11/20/05, Ingo Blechschmidt <[EMAIL PROTECTED]> wrote: >> sub foo (*@;AoA) { @;AoA } >> >> my @array1 = ; >> my @array2 = ; >> >> my @AoA = foo @array1, @array2; >> say [EMAIL PROTECTED]; # 2? > > 1 > >> say [EMAIL PROTECTED]; # a b c? >

Re: Multidimensional argument list binding (*@;foo)

2005-11-20 Thread Luke Palmer
On 11/20/05, Ingo Blechschmidt <[EMAIL PROTECTED]> wrote: > sub foo (*@;AoA) { @;AoA } > > my @array1 = ; > my @array2 = ; > > my @AoA = foo @array1, @array2; > say [EMAIL PROTECTED]; # 2? 1 > say [EMAIL PROTECTED]; # a b c? a b c d e f However, my @AoA = foo(@

Multidimensional argument list binding (*@;foo)

2005-11-20 Thread Ingo Blechschmidt
Hi, quoting r6624 of S06 [1]: > Some functions take multiple Lists that they wish not to be flattened > into one list. For instance, C wants to iterate several lists > in parallel, while array and hash subscripts want to process > multidimensional slices. The set of underlying argument list (List