Larry Wall <> writes:
 > On Fri, Nov 01, 2002 at 11:51:17AM -0700, John Williams wrote:
 > > Right.  ^= is rather pointless, because = already understands list
 > > context.
 > 
 > They're not quite the same because list assignment truncates first.  To wit:
 > 
 >     @a = [1,2,3];
 >     @b = [4,5];
 > 
 >     @a = @b; # @a gets [4,5]
 > 
 >     @a ^= @b;        # @a gets [4,5,undef]
 > 
 > And if you define = as an "intersection" rather than a "union" op, you'd get
 > 
 >     @a ^= @b;        # @a gets [4,5,3]
 > 
 > Maybe.  Or there could be a truncation implicit in intersection operators.
 > 

is it possible to make more clear this entry in the perl6 just-ice : 

for loop is just ...

because it seems that all "plaintive wine" flows because that is
unclear . 

.... because the second part seems to be obvious : 

vector operation is just a "for" loop with arguments "scattered" around ( 
   and inside) it . 

something like 

sub operator:^[] (Code &op, @a, @b) is parsed /\^\[<op>\]/ { ... } 

if we assume that ^[] staff is just a "for" loop ( that is, subroutine
) with one ( for prefix/postfix) or two ( for infix ) input streams (
wich can be degenerate if one of the arguments is scalar ) ( and ^[] is
more general , because it can accept hashes ( maybe we should allow
hash as input stream in "for" loop ) )  so if we assume that, 
than probably the decision on union/intersection in vector ops and for
loop with multiple streams should be unifyed .

in for loop we have special "|" , "&" , stream separators to
distinguish/force what we want. why for vector operations this have to 
be more implicit ? ( or may be I misunderstood and It is not  ) . 

in other words , is it going to be that each op will have its own
default behavior ( with respect to unify/intersect and such ) when
vectorized ? can I define an operator and be sure about its behavior
when vectorized , or should I specify it at scalar operator definition
, or should I define explicitely both scalar and vector version.


arcadi 

Reply via email to