Thu, Aug 24, 2006 at 12:51:04AM +0300, Gaal Yahas wrote:
: Wed, Aug 23, 2006 at 05:43:48PM -0400, Mark J. Reed wrote:
: But is there an easy way in Perl6 to do it all in one go? Should this work?
:
: my %h = @k [=>] @v;
:
: You want a zip:
:
: my %h = @k @v;
: my %h = @k Y @v; # ASCII fallback
That would have worked back when zip merely interleaved, but now it makes
sublists, and so we would have to teach hash assignment to transform [$k, $v]
into ($k,$v) or $k=>$v. Might not be a bad idea.
: my %h = zip(@k, @v); # or maybe zip(@k; @v) this week?
It would be zip(@k;@v). zip(@k,@v) would only have one dimension, so
would just concatenate the two lists and put each element into its
own sublist.
Alternately, for the old zip semantics we have each(@k;@v), which
makes a list with interleaved keys and values. It's just there's no
operator like for it (yet).
But I'd still probably use a hyper-fatarrow for this case rather than
relying on interleaving.
Larry