On Thu, Aug 24, 2006 at 12:51:04AM +0300, Gaal Yahas wrote: : On 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