James Mastros wrote:
> On 11/17/2002 1:11 AM, Dave Storrs wrote:
> > Arrays know how to manage their own size; they will grow
> > and shrink as needed when you add or remove elements. You
> > never need to worry about whether an array has enough space
> > to hold the number of elements you are about to insert.
>
> Reference to fixed-size lists, where this isn't true?
Do we have such a thing? In Perl5:
use constant foo => [1,2,3];
print foo()->[0]++;
print " @{foo()}";
results in:
1 2 2 3
Does Perl6 have fixed size lists? Do we have fixed size lists with fixed
elements? I.e., literal arrays?
> In purticuar, /there is no such thing as a list in scalar
> context/. There is mearly an application of the scalar comma
> operator, and spacing that makes it look like a list. The
> context propigation rules say that there is no way for a
> list in scalar context to happen.
Here I believe you are wrong.
Larry Wall, A2, RFC 175:
>
> the explicit list composer:
>
> [1,2,3]
>
> is syntactic sugar for something like:
>
> scalar(list(1,2,3));
> The documentation shouldn't
> say things like a list returns it's last element whereas an
> array returns it's size, because it simply ain't so, and
> causes confusion. (I'd write an RFC suggesting that the
> scalar comma op dies, but it's too late, and I'm sure
> somebody already did. Anyway, that's a p6l thing too.)
This was covered in Apoc2. An explict list in scalar context returns a list
reference. An array in scalar context returns an array reference. Or as
Larry (A2, RFC 009) wrote:
>
> it has to be possible to assign array references to array
> variables without accidentally invoking list context and
> copying the list instead of the reference to the list. We
> could invent another assignment operator to distinguish
> the two cases, but at the moment it looks as though bare
> variables and slices will behave as lvalues just as they
> do in Perl 5, while lists in parentheses will change to
> a binding of the right-hand arguments more closely
> resembling the way Perl 6 will bind formal arguments to
> actual arguments for function calls. That is to say,
>
> @foo = (1,2,3);
>
> will supply an unbounded list context to the right side, but
>
> (@foo, @bar) = (@bar, @foo)
>
> will supply a context to the right side that requests two
> scalar values that are array references.
--
Garrett Goebel
IS Development Specialist
ScriptPro Direct: 913.403.5261
5828 Reeds Road Main: 913.384.1008
Mission, KS 66202 Fax: 913.384.2180
www.scriptpro.com [EMAIL PROTECTED]