On Thu, Jun 16, 2005 at 10:28:26PM +0000, Luke Palmer wrote:
: You know, before I read this part of the message, I was thinking
: precisely that.  Nullary splat should do it, so that @foo[*] will
: work.  Unary splat would of course get our favor if it can be
: interpreted that way, but in cases like:
: 
:     @foo[*]
:     bar(*)
: 
: It is unambiguous, and you can always say (*) to disambiguate.  I like
: the look of that too.

Except I've still got my eye on nullary * to mean "all keys in this
dimension", and that would conflict if you want that meaning for part
of an expression but pipe to a different part.

One character that *would* work in that position is the Unix "pipe"
character: |.

    @foo[|]
    bar(|)

On the other hand, that kind of points out the fact that we *aren't*
using | for pipes in Perl 6.  It'd be nice to have some kind of visual
reference to <== and ==>.  Perhaps

    @foo[<>]
    bar(<>)

could be forced into that duty, on the assumption that if you really
want a null string, there's always some kind of '' workaround.
But that's concentrating on the pointy parts of the pipe operators.
How 'bout focusing on the pipey parts instead and use a nullary
iterator:

    @foo[=]
    bar(=)

I kind of like that, particularly since the pointy end of a pipe *is*
an iterator.

Larry

Reply via email to