Hi,

I'm trying to understand the following section in S03:

  S03/"Junctive operators"

  Junctions are specifically unordered.  So if you say
    for all(@foo) {...}
  it indicates to the compiler that there is no coupling between loop
  iterations and they can be run in any order or even in parallel.

Is this a "for" on a one element list, which happens to
be a junction, or does the all() flatten?

Is the whole block run once with 1,2 and 3, or does the 
junction go into the block and autothread each operation?

for all(1,2,3) {
   next if $_ < 2;  # testing 1 or all(1,2,3) ?
   %got{$_} = 1;
}
say %got.perl;      # "(('2', 1), ('3', 1))" or "()" ?

The "no coupling" in s03 suggests to me that the right
answer is "(('2', 1), ('3', 1))", but I'm just guessing.


Brad

-- 
  To ask when you already know is politeness. To ask when you don't know
  is the rule.                  -- Hagakure http://bereft.net/hagakure/

Reply via email to