Re: Arrays: Default Values

2003-02-04 Thread Piers Cawley
Aaron Sherman <[EMAIL PROTECTED]> writes: > On Wed, 2003-01-29 at 14:54, Jonathan Scott Duff wrote: > >> Can someone give me a realish world example of when you would want an >> array that can store both undefined values and default values and those >> values are different? > > my @send_partner_em

Re: Arrays: Default Values

2003-02-04 Thread Piers Cawley
Rick Delaney <[EMAIL PROTECTED]> writes: > I'd also like to point out that ruby has defaults for hashes but > assigning nil (the equivalent of undef) does not set the default; delete > does. Yeah, but Hashes aren't Arrays. And vice versa. -- Piers

Re: Arrays: Default Values

2003-01-31 Thread Leopold Toetsch
Dave Mitchell wrote: On Fri, Jan 31, 2003 at 05:59:46PM +0100, Leopold Toetsch wrote: IMHO some sort of proxy could be passed here, saying: "if you write to me, this will be at @a[0]". Or auto-vivify the entry. This is what Perl 5 does at the moment: $ perl5.8.0 -MDevel::Peek -e 'sub f{Dum

Re: Arrays: Default Values

2003-01-31 Thread Dave Mitchell
On Fri, Jan 31, 2003 at 05:59:46PM +0100, Leopold Toetsch wrote: > A lvalue param is not strictly reading, but here has to happen something > differently - yes: > > IMHO some sort of proxy could be passed here, saying: "if you write to > me, this will be at @a[0]". Or auto-vivify the entry. Thi

Re: Arrays: Default Values

2003-01-31 Thread Leopold Toetsch
Aaron Sherman wrote: On Tue, 2003-01-28 at 16:23, Leopold Toetsch wrote: Arrays (or hashes) don't grow on reading - never. But for less pure forms of reading: foo(@a[0]); auto-vivification will have to happen in some cases. e.g. if foo requires a lvalue parameter. A lvalue param is no

Re: Arrays: Default Values

2003-01-30 Thread Andrew Rodland
On Thursday 30 January 2003 06:49 pm, Andrew Rodland wrote: > On Wednesday 29 January 2003 09:52 pm, Rick Delaney wrote: > > On Wed, Jan 29, 2003 at 01:54:10PM -0800, Michael Lazzaro wrote: > > > On Wednesday, January 29, 2003, at 12:38 PM, Smylers wrote: > > I'd also like to point out that ruby h

Re: Arrays: Default Values

2003-01-30 Thread Andrew Rodland
On Wednesday 29 January 2003 09:52 pm, Rick Delaney wrote: > On Wed, Jan 29, 2003 at 01:54:10PM -0800, Michael Lazzaro wrote: > > On Wednesday, January 29, 2003, at 12:38 PM, Smylers wrote: > > > That would make the rule very simple indeed: > > > > > > Assigning C to an array element causes that

Re: Arrays: Default Values

2003-01-30 Thread Nicholas Clark
On Thu, Jan 30, 2003 at 11:41:04AM -0500, Aaron Sherman wrote: > On Wed, 2003-01-29 at 16:41, Nicholas Clark wrote: > > > And the demonstration was as expected? > > Yes, of course. If you modify a hash, or look at another hash, you > should not expect the same results. Why would you? More importa

Re: Arrays: Default Values

2003-01-30 Thread Michael Lazzaro
On Thursday, January 30, 2003, at 12:49 PM, Austin Hastings wrote: undef @a[5]; # undefining the element sets it to the default @a[5]; # 2 @a[5] = undef; # same as above @a[5]; # 2 undef!! @a is an array of Int (not int) and can store undef, so no error occurs

Re: Arrays: Default Values

2003-01-30 Thread Austin Hastings
--- Michael Lazzaro <[EMAIL PROTECTED]> wrote: > Right, we just can't do the 'undef' thing. OK, so let me see if this > is right yet: > > my Int @a is default(2); > @a[5] = 5; > > @a[4]; # 2 (autofilled) > @a[5]; # 5 > @a[6]; # 2 (out-of-bounds) > >

Re: Arrays: Default Values

2003-01-30 Thread Dan Sugalski
At 10:54 AM -0800 1/30/03, Mark Biggar wrote: and if we define a prop "is no_default" then you get what ever junk happens to be in memory. (this for even more speed) That's not going to happen. It's too unsafe, and too open to corruption attacks. -- Dan

Re: Arrays: Default Values

2003-01-30 Thread Michael Lazzaro
On Thursday, January 30, 2003, at 10:56 AM, Austin Hastings wrote: There is no reason why primitive-typed arrays can't have a default. It is the confusion of "default" with "undef" that is causing this problem. Yes, I misspoke. You can have a default, which it will use for autofill & out-of-

Re: Arrays: Default Values

2003-01-30 Thread Mark Biggar
Austin Hastings wrote: There is no reason why primitive-typed arrays can't have a default. It is the confusion of "default" with "undef" that is causing this problem. If I have: my int @a; print @a[4]; What comes out? Notice, there's no "is default(woo-woo)" in there. Just a plain old primit

Re: Arrays: Default Values

2003-01-30 Thread Austin Hastings
--- Michael Lazzaro <[EMAIL PROTECTED]> wrote: > > On Thursday, January 30, 2003, at 12:03 AM, Leopold Toetsch wrote: > > Why do you then use a primitive type in the first place? > > > > IMHO: > > > > 1) primitive types are what they are - no undef, no attributes, > just > > e.g. plain integers

Re: Arrays: Default Values

2003-01-30 Thread Michael Lazzaro
On Thursday, January 30, 2003, at 09:55 AM, Dan Sugalski wrote: At 9:53 AM -0800 1/30/03, Michael Lazzaro wrote: This is leading me to the conclusion that primitive-typed arrays should not be allowed to have defaults, period, and that attempting to place one should be a compile-time error.

Re: Arrays: Default Values

2003-01-30 Thread Dan Sugalski
At 9:53 AM -0800 1/30/03, Michael Lazzaro wrote: This is leading me to the conclusion that primitive-typed arrays should not be allowed to have defaults, period, and that attempting to place one should be a compile-time error. If you want a default, use C instead of an C, and it will work fine

Re: Arrays: Default Values

2003-01-30 Thread Michael Lazzaro
On Thursday, January 30, 2003, at 12:03 AM, Leopold Toetsch wrote: Why do you then use a primitive type in the first place? IMHO: 1) primitive types are what they are - no undef, no attributes, just e.g. plain integers (or shorts or bits ...) 2) if you want to store additional information us

Re: Arrays: Default Values

2003-01-30 Thread Dan Sugalski
At 11:41 AM -0500 1/30/03, Aaron Sherman wrote: On Wed, 2003-01-29 at 17:12, Dan Sugalski wrote: At 12:40 PM -0500 1/29/03, Aaron Sherman wrote: >Elements of a has ARE ordered, just not the way you may expect. Just to nip this one in the bud... The bud was back that-a-way about 3 days

Re: Arrays: Default Values

2003-01-30 Thread Aaron Sherman
On Wed, 2003-01-29 at 17:50, Spider Boardman wrote: > On 29 Jan 2003 14:29:52 -0500, Aaron Sherman wrote (in part): > > ajs> As for the argument that testing for true non-existentness is a > ajs> burden, check out the way Perl5 does this. Hint: there's a central > ajs> sv_undef, and that's not wh

Re: Arrays: Default Values

2003-01-30 Thread Aaron Sherman
On Wed, 2003-01-29 at 17:12, Dan Sugalski wrote: > At 12:40 PM -0500 1/29/03, Aaron Sherman wrote: > >Elements of a has ARE ordered, just not the way you may expect. > > Just to nip this one in the bud... The bud was back that-a-way about 3 days > If people start assuming that there's *any*

Re: Arrays: Default Values

2003-01-30 Thread Aaron Sherman
On Wed, 2003-01-29 at 16:41, Nicholas Clark wrote: > And the demonstration was as expected? Yes, of course. If you modify a hash, or look at another hash, you should not expect the same results. Why would you? More importantly, why would the conversation threat up until now lead to such an exampl

Re: Arrays: Default Values

2003-01-30 Thread Spider Boardman
On 29 Jan 2003 14:29:52 -0500, Aaron Sherman wrote (in part): ajs> As for the argument that testing for true non-existentness is a ajs> burden, check out the way Perl5 does this. Hint: there's a central ajs> sv_undef, and that's not what array buckets are initialized to Either you're dead wr

Re: Arrays: Default Values

2003-01-30 Thread Leopold Toetsch
Jonathan Scott Duff wrote: The solution I advocate is to allow even "primitive" types to hold undef. Why do you then use a primitive type in the first place? IMHO: 1) primitive types are what they are - no undef, no attributes, just e.g. plain integers (or shorts or bits ...) 2) if you w

Re: Arrays: Default Values

2003-01-29 Thread Dave Whipp
"Jonathan Scott Duff" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > On Wed, Jan 29, 2003 at 11:32:53AM -0800, Michael Lazzaro wrote: > > > > Agreed, it's not pretty. The fundamental problem is that a primitive > > like an C simply cannot be undefined... there'

Re: Arrays: Default Values

2003-01-29 Thread Rick Delaney
On Wed, Jan 29, 2003 at 01:54:10PM -0800, Michael Lazzaro wrote: > > On Wednesday, January 29, 2003, at 12:38 PM, Smylers wrote: > > That would make the rule very simple indeed: > > > > Assigning C to an array element causes that element to take > > the > > array's default value. > > > > The

Re: Arrays: Default Values

2003-01-29 Thread Rick Delaney
On Wed, Jan 29, 2003 at 02:37:04PM -0600, Jonathan Scott Duff wrote: > On Wed, Jan 29, 2003 at 03:29:57PM -0500, Aaron Sherman wrote: > > On Wed, 2003-01-29 at 14:54, Jonathan Scott Duff wrote: > > > > > Can someone give me a realish world example of when you would want an > > > array that can sto

Re: Arrays: Default Values

2003-01-29 Thread Dan Sugalski
At 2:18 PM -0800 1/29/03, Austin Hastings wrote: --- Dan Sugalski <[EMAIL PROTECTED]> wrote: At 10:59 AM -0800 1/29/03, Austin Hastings wrote: >Now: Does this require a "fake undef" and a "real undef"? > >WHO CARES? Very good answer. Leave the details to me and the p6i folks. (Though do pl

Re: Arrays: Default Values

2003-01-29 Thread Paul Johnson
On Wed, Jan 29, 2003 at 02:13:34PM -0600, Jonathan Scott Duff wrote: > On Wed, Jan 29, 2003 at 12:00:33PM -0800, Mark Biggar wrote: > > In my opinion, default values for arrays should only come into play > > for array elements that have NEVER been assigned to or that have > > been explicity undef'e

Re: Arrays: Default Values

2003-01-29 Thread Austin Hastings
--- Dan Sugalski <[EMAIL PROTECTED]> wrote: > At 10:59 AM -0800 1/29/03, Austin Hastings wrote: > >Now: Does this require a "fake undef" and a "real undef"? > > > >WHO CARES? > > Very good answer. Leave the details to me and the p6i folks. (Though > do please, everyone, pay attention when we tel

Re: Arrays: Default Values

2003-01-29 Thread Dan Sugalski
At 12:40 PM -0500 1/29/03, Aaron Sherman wrote: Elements of a has ARE ordered, just not the way you may expect. Just to nip this one in the bud... If people start assuming that there's *any* ordering to hashes, I promise I *will* make sure that parrot's external hash class starts returning ke

Re: Arrays: Default Values

2003-01-29 Thread Michael Lazzaro
On Wednesday, January 29, 2003, at 12:38 PM, Smylers wrote: That would make the rule very simple indeed: Assigning C to an array element causes that element to take the array's default value. The effects of this are: * Assigning a particular integer to an array of int or Int always do

Re: Arrays: Default Values

2003-01-29 Thread Nicholas Clark
On Wed, Jan 29, 2003 at 12:40:21PM -0500, Aaron Sherman wrote: > Elements of a has ARE ordered, just not the way you may expect. Quite: $ perl5.8.0 -le '%a = (small => 1, large =>2); %b = %a; print foreach keys %a; print "--"; print foreach keys %b' large small -- small large $ perl5.8.0 -le '

Re: Arrays: Default Values

2003-01-29 Thread Jonathan Scott Duff
On Wed, Jan 29, 2003 at 03:48:18PM -0500, Dan Sugalski wrote: > (Though do please, everyone, pay attention when we tell you that what > you want is slow or awkward) Just be sure to reiterate in case we miss it the first time :-) -Scott -- Jonathan Scott Duff [EMAIL PROTECTED]

Re: Arrays: Default Values

2003-01-29 Thread Dan Sugalski
At 10:59 AM -0800 1/29/03, Austin Hastings wrote: Now: Does this require a "fake undef" and a "real undef"? WHO CARES? Very good answer. Leave the details to me and the p6i folks. (Though do please, everyone, pay attention when we tell you that what you want is slow or awkward) --

Re: Arrays: Default Values

2003-01-29 Thread Aaron Sherman
On Wed, 2003-01-29 at 14:53, Austin Hastings wrote: > Leaving out the whole "is default()" bit, what happens when I: > > my int @a; > @a[4] = 100; > @a[2]; > > What does @a[2] return? It must return something, and that something > can't be undef, because ... So, what is it? Whatever it > i

Re: Arrays: Default Values

2003-01-29 Thread Smylers
> Agreed, it's not pretty. The fundamental problem is that a primitive > like an C simply cannot be undefined... there's no flag for that > (which is they're primitive.) Certainly there's no way of _storing_ C. > So it having a 'default value' at all is perhaps a bit of a misnomer. Why does tha

Re: Arrays: Default Values

2003-01-29 Thread Jonathan Scott Duff
On Wed, Jan 29, 2003 at 03:29:57PM -0500, Aaron Sherman wrote: > On Wed, 2003-01-29 at 14:54, Jonathan Scott Duff wrote: > > > Can someone give me a realish world example of when you would want an > > array that can store both undefined values and default values and those > > values are different?

Re: Arrays: Default Values

2003-01-29 Thread Aaron Sherman
On Wed, 2003-01-29 at 14:54, Jonathan Scott Duff wrote: > Can someone give me a realish world example of when you would want an > array that can store both undefined values and default values and those > values are different? my @send_partner_email is default(1); while $websignups.getline {

Re: Arrays: Default Values

2003-01-29 Thread Austin Hastings
--- Jonathan Scott Duff <[EMAIL PROTECTED]> wrote: > On Wed, Jan 29, 2003 at 08:49:42PM +0100, Juergen Boemmels wrote: > > Solution 3: The autoset sets the value to the default value. > > > > my Int @a is default(5); > > > > @a[3] = 3; # there are now 4 items in the array > >

Re: Arrays: Default Values

2003-01-29 Thread Jonathan Scott Duff
On Wed, Jan 29, 2003 at 09:07:37PM +0100, Juergen Boemmels wrote: > Jonathan Scott Duff <[EMAIL PROTECTED]> writes: > > Can someone give me a realish world example of when you would want an > > array that can store both undefined values and default values and those > > values are different? > > Ok

Re: Arrays: Default Values

2003-01-29 Thread Jonathan Scott Duff
On Wed, Jan 29, 2003 at 12:00:33PM -0800, Mark Biggar wrote: > In my opinion, default values for arrays should only come into play > for array elements that have NEVER been assigned to or that have > been explicity undef'ed. If an assigment is made to an array element > then the array element shou

Re: Arrays: Default Values

2003-01-29 Thread Mark Biggar
In my opinion, default values for arrays should only come into play for array elements that have NEVER been assigned to or that have been explicity undef'ed. If an assigment is made to an array element then the array element should end up the assigned value (modulo necessary type conversions) and

Re: Arrays: Default Values

2003-01-29 Thread Juergen Boemmels
Jonathan Scott Duff <[EMAIL PROTECTED]> writes: > On Wed, Jan 29, 2003 at 08:49:42PM +0100, Juergen Boemmels wrote: > > Solution 3: The autoset sets the value to the default value. > > > > my Int @a is default(5); > > > > @a[3] = 3; # there are now 4 items in the array > > @a

Re: Arrays: Default Values

2003-01-29 Thread Jonathan Scott Duff
On Wed, Jan 29, 2003 at 11:32:53AM -0800, Michael Lazzaro wrote: > > On Wednesday, January 29, 2003, at 11:02 AM, Jonathan Scott Duff wrote: > >> So you can't set something to its type's own empty value, because it > >> will, by definition, thereafter return it's "overloaded" empty value, > >> .

Re: Arrays: Default Values

2003-01-29 Thread Jonathan Scott Duff
On Wed, Jan 29, 2003 at 08:49:42PM +0100, Juergen Boemmels wrote: > Solution 3: The autoset sets the value to the default value. > > my Int @a is default(5); > > @a[3] = 3; # there are now 4 items in the array > @a[2]; # was autoset 5 so returns 5 > @a[4];

Re: Arrays: Default Values

2003-01-29 Thread Austin Hastings
--- Michael Lazzaro <[EMAIL PROTECTED]> wrote: > > On Wednesday, January 29, 2003, at 11:02 AM, Jonathan Scott Duff > wrote: > >> So you can't set something to its type's own empty value, because > it > >> will, by definition, thereafter return it's "overloaded" empty > value, > >> . > > > > Loo

Re: Arrays: Default Values

2003-01-29 Thread Juergen Boemmels
Michael Lazzaro <[EMAIL PROTECTED]> writes: > Solution 1: If you attempt to SET a cell to it's 'empty value', it > will be set to it's default: > > > my int @a is default(5); # > @a[5] = 0;# actually sets it to it's 'empty > value', 5 > > @a[5] = undef;

Re: Arrays: Default Values

2003-01-29 Thread Aaron Sherman
Ok, stepping back... there are three questions: * Can a type be undefined * What does an array say when asked for an element that doesn't exist * What happens when you try to undefine something I really think you need an attribute to clarify these. For example, you would not say: my in

Re: Arrays: Default Values

2003-01-29 Thread Michael Lazzaro
On Wednesday, January 29, 2003, at 11:02 AM, Jonathan Scott Duff wrote: So you can't set something to its type's own empty value, because it will, by definition, thereafter return it's "overloaded" empty value, . Looks like a maintenance nightmare to me. Agreed, it's not pretty. The fundame

Re: Arrays: Default Values

2003-01-29 Thread Jonathan Scott Duff
On Wed, Jan 29, 2003 at 10:23:26AM -0800, Michael Lazzaro wrote: > OK, I think we agree that 'default' refers to what to put in the > 'holes' of an array (or hash, but that's a separate discussion.) When > you overlay a real hash on top of your default values, the default > values "show through

Re: Arrays: Default Values

2003-01-29 Thread Austin Hastings
--- Michael Lazzaro <[EMAIL PROTECTED]> wrote: > > OK, I think we agree that 'default' refers to what to put in the > 'holes' of an array (or hash, but that's a separate discussion.) > When > you overlay a real hash on top of your default values, the default > values "show through the holes".

Re: Arrays: Default Values

2003-01-29 Thread attriel
> Solution 1: If you attempt to SET a cell to it's 'empty value', it > will be set to it's default: > > my int @a is default(5); # > @a[5] = 0;# actually sets it to it's 'empty value', > > 5 > @a[5] = undef;# autocnv to 0, + warning, still sets to > 5 >

Re: Arrays: Default Values

2003-01-29 Thread Michael Lazzaro
OK, I think we agree that 'default' refers to what to put in the 'holes' of an array (or hash, but that's a separate discussion.) When you overlay a real hash on top of your default values, the default values "show through the holes". So now we just have to define what "holes" are. An asser

Re: Arrays: Default Values

2003-01-29 Thread Aaron Sherman
Ok, I'll respond to a couple of points, below, but I think a lot of folks are confusing some operational concepts here, and it's getting hard to un-peel them. A container has many attributes, even if Perl won't let us control them. Those include: 1. Storage 2. Conversion of the wh

Re: Arrays: Default Values

2003-01-29 Thread Austin Hastings
--- Jonathan Scott Duff <[EMAIL PROTECTED]> wrote: > Can I flame you for being too preemptive? :-) In all honesty, I just wanted to be able to use "absquatulate" in a real post. ;-) =Austin

Re: Arrays: Default Values

2003-01-29 Thread Mark J. Reed
On 2003-01-29 at 10:32:58, Mark J. Reed wrote: > (What their value should be is the subject of the > parallel thread on array defaults). Whups, that would be THIS thread, actually. The sidebar on removing the syntactic distinction between arrays and hashes made me think I was over in the "Spare

Re: Arrays: Default Values

2003-01-29 Thread Mark J. Reed
On 2003-01-29 at 09:44:27, Aaron Sherman wrote: > Yes, I would expect that. In my opinion there is no difference between > an array and a hash other than the underlying storage and the > type-management of the key. Perhaps it is your opinion that those should be the only differences, but the actua

Re: Arrays: Default Values

2003-01-29 Thread Aaron Sherman
On Tue, 2003-01-28 at 19:24, Paul Johnson wrote: > > If that's not the case, I need to get my head around why, since Perl > > *does* distinguish between defined and exists. > > But I wish it wouldn't for arrays. That only came about to support > pseudo-hashes which are going / have gone away. >

Re: Arrays: Default Values

2003-01-28 Thread Joseph F. Ryan
attriel wrote: So ... with the discussion of "what if i really wanted to put an undef in there b/c it's not just that i haven't defined it but rather that it really isn't defined. I KNOW it's not defined, and i'm now explicitly saying it's undefined as opposed to before when i was implicitly sug

Re: Arrays: Default Values

2003-01-28 Thread attriel
So ... with the discussion of "what if i really wanted to put an undef in there b/c it's not just that i haven't defined it but rather that it really isn't defined. I KNOW it's not defined, and i'm now explicitly saying it's undefined as opposed to before when i was implicitly suggesting that i di

Re: Arrays: Default Values

2003-01-28 Thread Dave Whipp
Aaron Sherman wrote: auto-vivification will have to happen in some cases. e.g. if foo requires a lvalue parameter. You can't know if an actual write will happen, so you have to auto-vivify in order to pass a reference. Or did I miss something there? I think the idea is to use a special object

Re: Arrays: Default Values

2003-01-28 Thread Dave Whipp
Michael Lazzaro wrote: 2a) When a cell is explicitly re-undefined, does the default value take effect? my @a is Array( default => 'foo' ) = (1,2,3); @a[1] = undef; @a[1]; # undef, or 'foo'? STRAWMAN ANSWER: 'foo'. If C is a valid value for a cell, then I should be able

Re: Arrays: Default Values

2003-01-28 Thread Damian Conway
Michael Lazzaro wrote: The next (oft-asked) question is whether or not C denotes read-only, or if you can store to an C array. my @a is computed { $^index**2 }; @a[4] = 'something completely different'; I'd expect that C and C would be orthogonal. And things like this would be downri

Re: Arrays: Default Values

2003-01-28 Thread Paul Johnson
On Tue, Jan 28, 2003 at 03:06:19PM -0800, Damian Conway wrote: > Austin Hastings wrote: > > >--- Damian Conway <[EMAIL PROTECTED]> wrote: > > > >>my @a is default(666); > >> > >>print @a[2];# prints 666 > >> > >>@a[4] = 1; > >> > >>print @a[2];# now prints undef :-( > > [t

Re: Arrays: Default Values

2003-01-28 Thread Paul Johnson
On Tue, Jan 28, 2003 at 04:07:17PM -0500, Aaron Sherman wrote: > I think this debate is easier if you think of defaults as overriding and > auto-vivification method on a container. Hmm. I don't :-) I think it is easier if you think of defaults as overriding undef. > On Tue, 2003-01-28 at 14:47

Re: Arrays: Default Values

2003-01-28 Thread Smylers
Nicholas Clark wrote: > I'm not sure. I think I like the idea of > > @a[0] = undef; > > being a blip, but > > undef @a[0]; > > resetting the value to the default. That thought crossed my mind as well before I got to your message ... > Conceptually perl5 already has a distinction between

Re: Arrays: Default Values

2003-01-28 Thread Damian Conway
Austin Hastings wrote: --- Damian Conway <[EMAIL PROTECTED]> wrote: my @a is default(666); print @a[2]; # prints 666 @a[4] = 1; print @a[2]; # now prints undef :-( [typo in third line corrected] I don't understand your example. Can you explain it again, using words of less than one

Re: Arrays: Default Values

2003-01-28 Thread Nicholas Clark
On Tue, Jan 28, 2003 at 02:13:22PM -0800, Michael Lazzaro wrote: > Hmm. I don't have a strong preference either way, but I'm not sure why > (given C): > >@a[ undef ] > > C should be autoconverted to 0 with warning, but in: > >@a[0] = undef; > > C should _not_ be autoconverted to 0, b

Re: Arrays: Default Values

2003-01-28 Thread Austin Hastings
--- Michael Lazzaro <[EMAIL PROTECTED]> wrote: > > On Tuesday, January 28, 2003, at 01:01 PM, Nicholas Clark wrote: > > On Tue, Jan 28, 2003 at 12:30:41PM -0800, Austin Hastings wrote: > >> --- Michael Lazzaro <[EMAIL PROTECTED]> wrote: > >>> my int @a is Array( default => 5 ); > >>> @

Re: Arrays: Default Values

2003-01-28 Thread Smylers
Austin Hastings wrote: > --- Austin Hastings <[EMAIL PROTECTED]> wrote: > > > No, undef. OTOH, deleting @a[1] would reset it to default. > > Ere someone flames my for using a hash keyword in an array context: > > s/deleting/absquatulating (e.g., via pop, shift, or splice)/ What's wrong with C

Re: Arrays: Default Values

2003-01-28 Thread Austin Hastings
--- Damian Conway <[EMAIL PROTECTED]> wrote: > Austin Hastings wrote: > > --- Austin Hastings <[EMAIL PROTECTED]> wrote: > > > > > >>No, undef. OTOH, deleting @a[1] would reset it to default. > > > > > > Ere someone flames my for using a hash keyword in an array context: > > > > s/deleting/ab

Re: Arrays: Default Values

2003-01-28 Thread Michael Lazzaro
On Tuesday, January 28, 2003, at 01:01 PM, Nicholas Clark wrote: On Tue, Jan 28, 2003 at 12:30:41PM -0800, Austin Hastings wrote: --- Michael Lazzaro <[EMAIL PROTECTED]> wrote: my int @a is Array( default => 5 ); @a[0] = undef; This should cause a blip of some kind. If storing an e

Re: Arrays: Default Values

2003-01-28 Thread Michael Lazzaro
On Tuesday, January 28, 2003, at 01:14 PM, Damian Conway wrote: I'm not compelled by the counter-argument that this makes it impossible to store an C in an array with a default. Because the whole point of an array having a default is to prevent those nasty out-of-range Cs from popping up in t

Re: Arrays: Default Values

2003-01-28 Thread Aaron Sherman
On Tue, 2003-01-28 at 16:23, Leopold Toetsch wrote: > Austin Hastings wrote: > > > > Another question: If you ask for a value and get it, does the array > > grow? Or does that happen only on assignment? ( > > > Arrays (or hashes) don't grow on reading - never. Never say never. You're correct f

Re: Arrays: Default Values

2003-01-28 Thread Leopold Toetsch
Austin Hastings wrote: Another question: If you ask for a value and get it, does the array grow? Or does that happen only on assignment? ( Arrays (or hashes) don't grow on reading - never. And another anser from current low level (list.c & classes/Array.pmc) *Return value *---

Re: Arrays: Default Values

2003-01-28 Thread Nicholas Clark
On Tue, Jan 28, 2003 at 12:30:41PM -0800, Austin Hastings wrote: > > --- Michael Lazzaro <[EMAIL PROTECTED]> wrote: > > my int @a is Array( default => 5 ); > > @a[0] = undef; > > This should cause a blip of some kind. If storing an explicit undef (as > opposed to "undef but 0" or C<$v

Re: Arrays: Default Values

2003-01-28 Thread Damian Conway
Austin Hastings wrote: --- Austin Hastings <[EMAIL PROTECTED]> wrote: No, undef. OTOH, deleting @a[1] would reset it to default. Ere someone flames my for using a hash keyword in an array context: s/deleting/absquatulating (e.g., via pop, shift, or splice)/ Unfortunately, I don't think we

Re: Arrays: Default Values

2003-01-28 Thread Aaron Sherman
I think this debate is easier if you think of defaults as overriding and auto-vivification method on a container. On Tue, 2003-01-28 at 14:47, Paul Johnson wrote: > Michael Lazzaro said: > > 2a) When a cell is explicitly re-undefined, does the default value take > > effect? > > > > my @a is

Re: Arrays: Default Values

2003-01-28 Thread Austin Hastings
--- Austin Hastings <[EMAIL PROTECTED]> wrote: > No, undef. OTOH, deleting @a[1] would reset it to default. Ere someone flames my for using a hash keyword in an array context: s/deleting/absquatulating (e.g., via pop, shift, or splice)/ =Austin

Re: Arrays: Default Values

2003-01-28 Thread Austin Hastings
--- Michael Lazzaro <[EMAIL PROTECTED]> wrote: > 1) What's the final decided syntax? Two possibilities: > > my @a is Array( default => 'foo' ); # attrib? > my @a is default('foo');# property? Since we want arrays (lowercase) to support them, too, it should be a pro

Re: Arrays: Default Values

2003-01-28 Thread Paul Johnson
Michael Lazzaro said: > > There has been discussion of allowing a "default" value for array cells > -- that is, one aside from C or whatever the type-specific > default is. Questions, in order of increased evilness: 1 and 2 seem fine to me. > 2a) When a cell is explicitly re-undefined, does th

Re: Arrays: Default Values

2003-01-28 Thread Jonathan Scott Duff
On Tue, Jan 28, 2003 at 01:30:54PM -0600, Jonathan Scott Duff wrote: > On Tue, Jan 28, 2003 at 11:15:26AM -0800, Michael Lazzaro wrote: > > 2) Assume the default value is a simple value, e.g. 'foo'. > > > > my @a is Array( default => 'foo' ); > > @a[5] = 'bar'; > > > > @a[4]; #

Re: Arrays: Default Values

2003-01-28 Thread Jonathan Scott Duff
On Tue, Jan 28, 2003 at 11:15:26AM -0800, Michael Lazzaro wrote: > 2) Assume the default value is a simple value, e.g. 'foo'. > > my @a is Array( default => 'foo' ); > @a[5] = 'bar'; > > @a[4]; # 'foo' > @a[5]; # 'bar' > @a[6]; # 'foo' > > @a[-1];# '

Arrays: Default Values

2003-01-28 Thread Michael Lazzaro
There has been discussion of allowing a "default" value for array cells -- that is, one aside from C or whatever the type-specific default is. Questions, in order of increased evilness: 1) What's the final decided syntax? Two possibilities: my @a is Array( default => 'foo' ); # attri