The zip operator in this case takes two sequences and interleaves them into a single sequence. It might be useful if you have handy or can generate a list of keys and a list of values you want to put together in pairs using => to create a hash table.
Your explicit approach makes sense for readability - it can aid comprehension if a fake address looks like a real one. On 1 March 2017 at 16:47, Todd Chester <toddandma...@zoho.com> wrote: >> On Wednesday, March 01, 2017 01:01 PM, Todd Chester wrote: >>> >>> Hi All, >>> >>> And it even gets more interesting. >>> >>> It even works with Associative Arrays (Hashes), which I adore! >>> >>> Interesting how associative arrays don't print in order that they >>> were entered into the array. >>> >>> <code> >>> #!/usr/bin/perl6 >>> >>> my @x = ( "a", "b", "c", "d" ); >>> >>> print "loop of \@x\n"; >>> for @x.kv -> $index, $value { >>> print " Line no. <" ~ ($index + 1) ~ >>> "> has an index of <$index> and a value of <$value>\n"; } >>> print "\n"; >>> >>> >>> my %y = ( 'aa'=>"AA", 'bb'=> "BB", 'cc'=>"CC", 'dd'=>"DD" ); >>> >>> print "loop of \%y\n"; >>> for %y.kv -> $key, $value { >>> print " \%y has an key of <$key> and a value of <$value>\n"; } >>> print "\n"; >>> </code> >>> >>> ./LoopIndexTest.pl6 >>> loop of @x >>> Line no. <1> has an index of <0> and a value of <a> >>> Line no. <2> has an index of <1> and a value of <b> >>> Line no. <3> has an index of <2> and a value of <c> >>> Line no. <4> has an index of <3> and a value of <d> >>> >>> loop of %y >>> %y has an key of <cc> and a value of <CC> >>> %y has an key of <dd> and a value of <DD> >>> %y has an key of <bb> and a value of <BB> >>> %y has an key of <aa> and a value of <AA> > > > > On 02/28/2017 09:27 PM, Richard Hainsworth wrote: >> Instead of >> my %y = ( 'aa'=>"AA", 'bb'=> "BB", 'cc'=>"CC", 'dd'=>"DD" ); >> >> in the code below, >> >> I find the following useful for filling an associative array (when >> testing and I dont care about the contents) >> >> my %y = <aa bb cc dd> Z=> 'AA'..*; >> #{aa => AA, bb => AB, cc => AC, dd => AD} >> >> But if the contents matter, how about, >> my %y = <aa bb cc dd> Z=> <AA BB CC DD>; >> #{aa => AA, bb => BB, cc => CC, dd => DD} >> >> The 'Z' is the zip operator, the '=>' links a key to its value. >> The ..* uses the power of perl6 to generate sequences from an initial >> member. >> >> Richard >> > > Hi Richard, > > I don't understand how the zipper works or > why I'd want to use it. > > my %Location = ( 'City'=>"Carson City", > 'State'=>"NV", > 'ZipCode'=>"89701", > 'Country'=>"USA" ); # just made up place > > Make sense to me and is easily maintainable. > I do not get where the zipper comes in? Or > how it would make things easier to read? > > By chance is the idea that you don't have to the assign the > values at the same time you assign the keys? > > There is extra time spent on writing the way I did it, but > I don't care. I know how to type (high school typing) and > my main goal it to make the code maintainable. (This is why I > use Top Down as well.) I can type almost as fast as I think. > > I am confused, > -T