From: Trans Date: 2006-08-25T03:20:13+09:00 Subject: Re: Call for crystalization --was:A use case for an ordered hash 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. http://www.geocities.co.jp/SiliconValley-PaloAlto/3388/rbtree/README.html T.