logo       

Re: Recap: How to empty a collection: msg#00133

lang.smalltalk.squeak.beginners

Subject: Re: Recap: How to empty a collection

Blake a écrit :
On Tue, 19 Feb 2008 15:59:57 -0800, nicolas cellier <ncellier@xxxxxxxxxxx> wrote:

However, there are plenty of ordinary things that would have the same result:

| key1 key2 dic |
key1 := 'abc' copy.
key2 := 'abd' copy.
dic := Dictionary new.
dic at: key1 put: 1.
dic at: key2 put: 2.
key1 at: 1 put: $z.
{dic includesKey: key1.
dic keys includes: key1.}

So i propose newbies do not use #at:put: considering the danger about Dictionary not finding their keys...

This seems pretty bad to me, too, but it seems more designed to break a known weakness than to actually accomplish something. You know, like empty a collection.<s>


Yes, the example is dumb, but that's the kind of thing that happens in real code (just split contructing/changing keys/accessing in three different methods).
No use to forbid become: for this reason, there are better reasons (it's sloooow), become: usage was sponsored once upon a time when it was fast, providing both efficient and generic solutions.

But I'd probably argue that the above should work, and that it's a design flaw that it doesn't.


Yes, but it is very hard to make it work efficiently.
So that's a limitation we must be aware of.

Anyway, why do you think all code is accessible in Smalltalk?
In the spirit, nothing is to be hidden from newbies eyes.
Yes I know, maybe some code should

There's a positive fetish about this. I'm all for everything being accessible. But everything being equally accessible all the time is not pragmatic.


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise