Thomas A. Boyer writes:
 > Michael Lazzaro wrote:
 > > *Now*, what to do about the fantastic magic that pointy-sub provides?
 > > The _spectacular_ win would be if we could just recognize an optional
 > > parameter list as part of a block.
 > > 
 > >      map @a : ($a,$b) {...}  # params + closure = closure with params?
 > >      for @a : ($a,$b) {...}
 > > 
 > > So that anywhere you had a closure, you could put a paramlist in front
 > > of it.  Not likely we could get that to work, since best-case scenario
 > > it would probably barf on $a and $b being undefined before it ever got
 > > to the closure.  But it might be possible, at the expense of some
 > > parser complexity.
 > 

I sertainly can do it like taht : 
       map @a :  {...}  is sig($a,$b) 
       for @a :  {...}  is sig($a,$b) 

or 

      map @a :  sub($a,$b) {...} 
      for @a :  sub($a,$b) {...} 

or 

      @a ~> map sub($a,$b) {...} 

It also seems that the difference between map and for may be twisted
as follows : map apply particular closure to several ( possibly one )
array , while for takes particular array ( which may have possibly
passed some pre -zipping/-weaving) and apply pour it to several (
possibly one ) closures.  

if we assume that for can accept as its last arguments sequence one or
more closures than with the existing pointy sub meaning of -> we can
have 

for @a -> ( $x ){ ... } 
       -> ( $y ){ ... } 
       -> ( $z ){ ... } ;

and "," is unnecessary after the curly for the same reason it is
unnecessary after @a. 

since grep/map/and_friends are just subroutines this naturally gives
piping behaviour : 


for @a       -> ( $x ){ ... }           #this is map 
       ,grep -> ( $y ){ ... }           #this is grep
       ,sort -> ( $a,$b ){ ... } ;      #this is sort 

this is similar to the old "then" suggestion of Damian Conway 

@a     then map  -> ( $x ){ ... }               #this is map 
       then grep -> ( $y ){ ... }               #this is grep
       then sort -> ( $a,$b ){ ... } ;  #this is sort 


arcadi 


Reply via email to