Call for crystalization --was:A use case for an ordered hash

(thoran@thoran.com) #1

Benjohn and all,

I think our problem is that our terms are sloppy. I'd written yesterday that I'd mistaken the functionality of Hash for AssociativeArray, and then today I find this:

"Hashes (sometimes known as associative arrays or dictionaries) are similar to arrays, in that they are indexed collectives of object references."

OK, so who wrote that? Dave and Andrew on page 37 of Programming Ruby, First Edition.

See! We're all confused. (Can I blame you Dave, or Andrew, for my confusion?)

As I've proposed, we need to come up with a coherent taxa of collections or lists. We need to have one name, or possibly a bunch of names (as we are want in Ruby), but each name or bunch of names should apply to and only apply to one of each of the different containers that we are wanting to use.

I had an excessive taxa before which had some nonsense ones in it. However, and assuming we don't go for my generalized Container or List or Collection, which I still think could have merit, with or without the automated restructuring magic, I have weeded out the ones that don't make sense, so here then are the types that I think we want, with little respect to the goodness of, or options for each name:

Array
Hash
Keyed/HashedArray (with an optional sorter block, so as to indicate that and provide for the basis of the order, nothing = insertion order, block = sorted order)

I don't like OrderedHash as a term.

And see a following post (tomorrow) I'm writing about theft.

thoran

(7rans) #2

thoran@thoran.com wrote:

Benjohn and all,

I think our problem is that our terms are sloppy. I'd written
yesterday that I'd mistaken the functionality of Hash for
AssociativeArray, and then today I find this:

"Hashes (sometimes known as associative arrays or dictionaries) are
similar to arrays, in that they are indexed collectives of object
references."

OK, so who wrote that? Dave and Andrew on page 37 of Programming
Ruby, First Edition.

See! We're all confused. (Can I blame you Dave, or Andrew, for my
confusion?)

As I've proposed, we need to come up with a coherent taxa of
collections or lists. We need to have one name, or possibly a bunch
of names (as we are want in Ruby), but each name or bunch of names
should apply to and only apply to one of each of the different
containers that we are wanting to use.

I had an excessive taxa before which had some nonsense ones in it.
However, and assuming we don't go for my generalized Container or List
or Collection, which I still think could have merit, with or without
the automated restructuring magic, I have weeded out the ones that
don't make sense, so here then are the types that I think we want,
with little respect to the goodness of, or options for each name:

Array
Hash
Keyed/HashedArray (with an optional sorter block, so as to indicate
that and provide for the basis of the order, nothing = insertion
order, block = sorted order)

I don't like OrderedHash as a term.

And see a following post (tomorrow) I'm writing about theft.

I say just call it Dict or Dictionary, since hashes are also known by
this name, but the name also implies a sorting order.

There's already a red-black tree wrtten in C, looks like it might evne
have a Dict class already. I imagine this would make an excellent
caniddate for the purpose.

T.

(Rick DeNatale) #3

There's nothing wrong with that statement. Hashes are indexed
collections of object references. (the 2nd ed uses collections rather
than collectives in that sentence). There's nothing to say that
indices need to be integers.

And while we're at it why hasn't anyone cried out for the need for an
"order preserving" array in ruby.
rick@bill:~/ruby-1.8.4$ irb
irb(main):001:0> a =[]
=> []
irb(main):002:0> a[2] = 3
=> 3
irb(main):003:0> a
=> [nil, nil, 3]

···

On 8/24/06, thoran @ thoran. com <thoran@thoran.com> wrote:

Benjohn and all,

I think our problem is that our terms are sloppy. I'd written
yesterday that I'd mistaken the functionality of Hash for
AssociativeArray, and then today I find this:

"Hashes (sometimes known as associative arrays or dictionaries) are
similar to arrays, in that they are indexed collectives of object
references."

OK, so who wrote that? Dave and Andrew on page 37 of Programming
Ruby, First Edition.

See! We're all confused. (Can I blame you Dave, or Andrew, for my
confusion?)

--
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/