David Storrs:
# I don't care about the syntax at all, I just made up 
# something that seemed moderately clear to me.  In point of 
# fact, I hope we DON'T use the above syntax, or anything else 
# where you are required to have an operator between each 
# element of the pipeline.

How else would you disambiguate?

# > We _must_ (for some value of "must" that is real close to 
# being a 100%
# > drop-dead requirement) support --> (L2R), in the form of
# > 
# >    @a.grep( {...} )
# >        .map( {...} )
# >          .sort;
# > 
# > i.e. however else we do it, array processing functions 
# _MUST_ exist as
# > methods of Array.  That may not be the preferred spelling, 
# or anything 
# > close to attractive, but it would be simply pathetic for it not to 
# > exist.

If we put in my idea of "longest possible signature" when there's no
parens and a low-precedence 'dot' operator, we could do this without the
parens.  *ducks*

# Well, I generally agree with you, but with an important nit: 
# they shouldn't be members of Array, they should be members of 
# Collection, Array's base class.  Otherwise, what if I define 
# an UnorderedMultiSet class and I want to grep over it?

Fine.  What do you grep over when you're grepping a hash?  .k?  .v?  .kv
and pass two values in?  Pair objects?

# > have to be in _addition_ to the above, not _instead_ of.  We can add
# > the Perl5-style:
# > 
# >     @out = sort map {...} grep {...} @a;
# > 
# > if we want to, but I don't think it should be given a free ride in
# > Perl6.  It's not regular (not like anything else in the language), 
# > sucks up those names as globally reserved (as opposed to 
# merely methods 
# > of arrays), implies more possible wacky behaviors of curlies, and 
# > cannot credibly be tortured into being OO upon @a.
# 
# Hmmm...I don't suppose that, with implicit promotion to 
# Array, we can get out of this with the indirect object 
# notation, can we?  I'm not sure what it looks like this week, 
# but perhaps we could make a minor requirement change (e.g., 
# need a comma on the methods and a trailing : on the @a) and 
# shoehorn it into something like this:
# 
#       @out = sort map {...}, grep {...}, @a:;

Eww.  Indir object is like this:

        @out = sort map grep @a: {grepblock} {mapblock};
        #I'm not sure you can actually leave out the 
        # parens--it might be ambiguous.

I assume you can see why this is a Bad Thing.

--Brent Dax <[EMAIL PROTECTED]>
@roles=map {"Parrot $_"} qw(embedding regexen Configure)

"If you want to propagate an outrageously evil idea, your conclusion
must be brazenly clear, but your proof unintelligible."
    --Ayn Rand, explaining how today's philosophies came to be

Reply via email to