Browse thread
RE: [Caml-list] Efficient and canonical set representation?
- Harrison, John R
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2003-11-12 (00:21) |
From: | Harrison, John R <johnh@i...> |
Subject: | RE: [Caml-list] Efficient and canonical set representation? |
That seems to be the best suggestion so far. I guess it would work well in practice. But theoretically it still doesn't give O(log n) lookup and insertion without the kinds of assumptions you noted about the distribution of elements w.r.t. the hash function. And relying on polymorphic hashing seems a bit of a hack. So I still can't help wondering if there's an elegant solution with the desired worst-case behaviour, preferably relying only on pairwise comparison. Is it just a coincidence that the numerous varieties of balanced tree (AVL, 2-3-4, red-black, ...) all seem to be non-canonical? Or is it essential to their efficiency? (Perhaps this is a question for another forum.) John. -----Original Message----- From: owner-caml-list@pauillac.inria.fr [mailto:owner-caml-list@pauillac.inria.fr]On Behalf Of Diego Olivier Fernandez Pons Sent: Monday, November 10, 2003 5:25 AM To: Harrison, John R Cc: caml-list@inria.fr Subject: RE: [Caml-list] Efficient and canonical set representation? Bonjour, > After your remarks and Brian's, I'm starting to wonder if it is > possible at all to do what I want. Maybe I should be looking for an > impossibility proof instead... Patricia sets seem to be what you are looking for. (1). Efficient usual operations (lookup, insertion, union) (2). Structural equality Their only problem is that they cannot handle polymorphic orderable types but only integers... Hash the data, use this key to insert it in a patricia map and solve the collisions by chaining in an ordered list (with the polymorphic [compare] function). (1) and (2) still hold under usual hypothesis on the rate of collisions. A few changes to JCF's implementation should be enough. Diego Olivier ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners