On Mon, Nov 21, 2005 at 03:48:30PM +0000, Luke Palmer wrote:
: To illustrate:
: 
:     sub foo ([EMAIL PROTECTED]) {
:         say [EMAIL PROTECTED];
:     }
:     sub bar (*@;a) {
:         say +@;a;
:     }
:     foo(1,2,3; 4,5,6);   # 6
:     bar(1,2,3; 4,5,6);   # 2
: 
: That is, the regular [EMAIL PROTECTED] has "concat" semantics.  However, I'd 
like to
: argue that it should have "die" semantics, for obvious reasons.

Well, that can be argued both ways.  The Unix shells get along very well
with default concat semantics, thank you:

    (echo foo; echo bar; echo baz) | grep a

And it's rather Perlish to give you a level of flattening for free when
it comes to lists.  And I'd like to be able to distinguish:

    my @foo := gather {
        for @whatever {
            take .generate();
        }
    }

from

    my @;foo := gather {
        for @whatever {
            take .generate();
        }
    }

though I think maybe I'm arguing that the ; there is just documentation
if @;foo and @foo are really the same variable, and it's the differing
usage in rvalue context that desugars @;foo to [;]foo.dims.

Larry

Reply via email to