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]