> But is it OK for a list to be silently promoted to an array when used 
> as an array?  So that all of the following would work, and not just 50% 
> of them?
>     (1..10).map {...}
>     [1..10].map {...}

And somehow related to all this . . .

Let's assume for the moment that there's still a functional version of
the C<map> operator (I think Larry indicated that it probably wouldn't
be going away, despite <~ and friends).  I'm also going to use $_ in the
code block, even though things like $^a exist.  Lowest common
denominator and all that.

Let's also assume:

  @count = (1, 2, 3, 4, 5);

  @smallcount = (2, 3, 4);

  $#array works like in Perl5 (if not, you can mentally change my
  notation below)

What's the result of these statements in Perl6?

  @a = map { $_ + 1 } @count;  # my guess: @a = (2, 3, 4, 5, 6)

  @a = map { $_ + 1 } @count[0..$#count];  # my guess: @a = (2, 3, 4, 5, 6)

  @a = map { $_ + 1 } (1, 2, 3, 4, 5);  # my guess: @a = (2, 3, 4, 5, 6)

All fair enough.  Now how about these?

  @a = map { $_ + 1 } (1, @smallcount, 5);   # Three or five elements?

  @a = map { $_ + 1 } (1, @smallcount[0..$#smallcount], 5);   # Array slices appear to 
be lists

  @a = map { $_ + 1 } \@count;     # Map the array or its reference?

  @a = map { $_ + 1 } [1, 2, 3, 4, 5];  # one-element list or five-element array?

  $ref = @count;
  @a = map { $_ + 1 } $ref;      # Map the scalar or the array it refers to?

  @a = map { $_ + 1 } @count;    # Am I sure about this one any more, given the one 
above?

There's a slippery slope here that needs propping up.

It's things like this that make me worry a great deal about implicit
dereferencing, something which is going to be happening a lot more in
Perl6 than in Perl5.

Where's the list of rules that state:
- when implicit referencing happens
- when implicit dereferencing happens
- when arrays are flattened into lists, and
  - how to stop this from being the default, and
  - how to make it happen when it isn't the default
- how arrays of pairs, lists of pairs (i.e., "hash literals")
  and hashes are related, and when one can be substituted for
  another (and when one is implicitly converted to another)
?

I think some of this is in A2, but not all of it.

I'm prepared to summarize the outcome of this discussion if we actually
arrive at anything definite.

-- 
Debbie Pickett http://www.csse.monash.edu.au/~debbiep [EMAIL PROTECTED]
"Oh, she's got it bad."  "What?  What has she got?"  "Isn't it obvious, Daddy?
                  Ariel's in *love*." - _The Little Mermaid_

Reply via email to