--- Luke Palmer <[EMAIL PROTECTED]> wrote: > > Date: Wed, 08 Jan 2003 12:14:10 +0800 > > From: Damian Conway <[EMAIL PROTECTED]> > > > > Can I suggest that an alternative solution might be the following: > > > > Suppose Perl 6 had two new very low precedence operators: ~> and <~ > > (a.k.a. "bind rightwards" and "bind leftwards") > > > > Suppose ~> takes its left argument and binds it to > > the end of the argument list of its right argument, > > then evaluates that right argument and returns the result. > > So an L2R array-processing chain is: > > > > @out = @a ~> grep {...} ~> map {...} ~> sort; > > > > There might also be a be special rule that, if the RHS is > > a variable, the LHS is simply assigned to it. Allowing: > > > > @a ~> grep {...} ~> map {...} ~> sort ~> @a; > > > > Further suppose that <~ takes its right argument, and binds > > it in the indirect object slot of the left argument, which > > argument it then calls. So an R2L array-processing chain is: > > > > @out = sort <~ map {...} <~ grep {...} <~ @a; > > > > Or, under a special rule for variables on the LHS: > > > > @out <~ sort <~ map {...} <~ grep {...} <~ @a; > > > > That way, everything is still a method call, the ultra-low precedence of > > <~ and ~> eliminate the need for parens, and (best of all) the > expressions > > actually *look* like processing sequences. > > I think this is a big step towards readability. It allows you to put > whatever part of the expression wherever you want (reminiscent of > Latin); i.e. always keep the important parts standing out. I also > think that the operator (especially a cool 3d-looking one like ~>) is > also much more readable than a word in this case.
I don't like either of these operators. What's wrong with "@out = sort map {...} grep {...} @a"? __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com