[squeak-dev] Set class comment
Casey Ransberger
casey.obrien.r at gmail.com
Tue Mar 30 02:09:55 UTC 2010
I noticed that the class comment for Set still thinks you can't stick nil in
a set. I was going to update it, but I'm a little confused about what's
going on in #array.
#(#foo # bar #baz nil) asSet array
{nil . nil . nil . a SetElement . nil . #foo . #baz . nil . nil . nil .
#bar}
Can I assume that the SetElement is a stand in for the nil item in the Set?
See below for what I have so far.
=================================================
As of Squeak 4.1, Sets can contain nil.
I represent a set of objects without duplicates. I can hold anything that
responds to
#hash and #=. My instances will automatically grow, if necessary,
Note that I rely on #=, not #==. If you want a set using #==, use
IdentitySet.
Instance structure:
array An array whose non-nil elements are the elements of the set,
and whose nil elements are empty slots. There is always at least one nil.
In fact I try to keep my "load" at 75% or less so that hashing will work
well.
tally The number of elements in the set. The array size is always greater
than this.
The core operation is #findElementOrNil:, which either finds the position
where an
object is stored in array, if it is present, or finds a suitable position
holding nil, if
its argument is not present in array,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100329/89015ed2/attachment.htm
More information about the Squeak-dev
mailing list
|