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: More Array Behaviors

2003-01-29 Thread Luke Palmer
> Date: Mon, 27 Jan 2003 13:24:23 -0800 > From: Damian Conway <[EMAIL PROTECTED]> > > Dave Whipp suggested: > > > The size constraints are probably C properties, as is C. The > > exception behavior probably deserves to remain an C property. > > Nope. They're all C properties. C properties only a

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: Ordering is not what distinguish array from associative tables

2003-01-29 Thread Joseph F. Ryan
Stéphane Payrard wrote: On Wed, Jan 29, 2003 at 09:44:27AM -0500, 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. I'm increasingly of the opinion that a) there

Ordering is not what distinguish array from associative tables

2003-01-29 Thread Stéphane Payrard
On Wed, Jan 29, 2003 at 09:44:27AM -0500, 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. I'm increasingly of the opinion that a) > there should be no @ vs

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: Spare brackets :-)

2003-01-29 Thread Smylers
Michael G Schwern wrote: > On Tue, Jan 28, 2003 at 12:11:18PM +1300, [EMAIL PROTECTED] wrote: > > > Has anyone considered removing with the syntactic distinction > > between numeric and string indexing -- that is, between array and > > hash lookup? > > PHP works this way. Well, for some definit

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: Spare brackets :-)

2003-01-29 Thread Aaron Sherman
On Wed, 2003-01-29 at 05:29, Leopold Toetsch wrote: > John Williams wrote: > > > I think you are still overlooking the autovivification behavior. > > i.e. What is the difference between these: > > > >1) $a{1234567} = 1; > > > >2) $a[1234567] = 1; > > > > Answer: #1 creates 1 element

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: More Array Behaviors

2003-01-29 Thread Andrew Wilson
On Wed, Jan 29, 2003 at 03:52:22PM +, Nicholas Clark wrote: > On Wed, Jan 29, 2003 at 07:46:43AM -0800, Austin Hastings wrote: > > Obviously, values are pure and therefrom spring "virtues," while > > objects are but vile clay -- fallible constructs of a sinful man, > > pathetically trying to re

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: More Array Behaviors

2003-01-29 Thread Austin Hastings
--- Nicholas Clark <[EMAIL PROTECTED]> wrote: > On Wed, Jan 29, 2003 at 07:46:43AM -0800, Austin Hastings wrote: > > Obviously, values are pure and therefrom spring "virtues," while > > objects are but vile clay -- fallible constructs of a sinful man, > > pathetically trying to recreate an envisio

Re: More Array Behaviors

2003-01-29 Thread Nicholas Clark
On Wed, Jan 29, 2003 at 07:46:43AM -0800, Austin Hastings wrote: > Obviously, values are pure and therefrom spring "virtues," while > objects are but vile clay -- fallible constructs of a sinful man, > pathetically trying to recreate an envisioned ideal. Ergo, they have > naught but "vices." > > C

Re: More Array Behaviors

2003-01-29 Thread Austin Hastings
--- Nicholas Clark <[EMAIL PROTECTED]> wrote: > On Tue, Jan 28, 2003 at 09:17:36AM -0800, Damian Conway wrote: > > Errno. That's rather the whole point of C properties [*]. > > > [*] People, we just *have* to find better names for these things! > > I'd suggest we henceforth call them "val

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: Spare brackets :-)

2003-01-29 Thread Austin Hastings
--- Sam Vilain <[EMAIL PROTECTED]> wrote: > =head2 includes( [ I, ] [ I ]) Where the and/or are obviously junctions. if ($container.includes(any("ant", "beaver", "cow", "duck"))( ... This is *SO* cool. =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: Spare brackets :-)

2003-01-29 Thread Leopold Toetsch
John Williams wrote: I think you are still overlooking the autovivification behavior. i.e. What is the difference between these: 1) $a{1234567} = 1; 2) $a[1234567] = 1; Answer: #1 creates 1 element. #2 creates 1,234,567 elements! Not currently: 2) does - generate a sparse hole be

Re: Spare brackets :-)

2003-01-29 Thread Sam Vilain
On Wed, 29 Jan 2003 18:04, Michael G Schwern wrote: > On Tue, Jan 28, 2003 at 12:11:18PM +1300, [EMAIL PROTECTED] wrote: > > This may sound like a silly idea but ... > > > > Has anyone considered removing with the syntactic distinction between > > numeric and string indexing -- that is, between arr

Re: Spare brackets :-)

2003-01-29 Thread martin
>> In particular, it would seem that >> %foo[$key] >> would be just as easy for the compiler to grok as >> %foo{$key} On Mon, 27 Jan 2003 15:39:19 -0800, Damian Conway <[EMAIL PROTECTED]> wrote: > Sure. But then is this: > > $ref[$key] > > an array or hash look-up??? Yes, well I suppose t

Re: Spare brackets :-)

2003-01-29 Thread Michael G Schwern
On Tue, Jan 28, 2003 at 12:11:18PM +1300, [EMAIL PROTECTED] wrote: > This may sound like a silly idea but ... > > Has anyone considered removing with the syntactic distinction between > numeric and string indexing -- that is, between array and hash lookup? PHP works this way. http://www.php.net/m

Re: Spare brackets :-)

2003-01-29 Thread John Williams
On 28 Jan 2003, Aaron Sherman wrote: > I'm not sure I recall the sufficient, yet irrelevant technical reasons. > I certainly can't think of anything. It also helps in the case of > objects that are non truly arrayish or hashish: > > my SuperTree $foo; > $foo["Munge"]; # Returns the nod