Browse thread
[Caml-list] Map + Set
[
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: | -- (:) |
| From: | Matt Gushee <mgushee@h...> |
| Subject: | Re: [Caml-list] Map + Set |
On Sun, Jul 25, 2004 at 04:17:55PM +0800, Martin Jambon wrote:
>
> I need a functional data structure that has a decent efficiency (i.e.
> not lists) and can represent `sets of named containers' so that I can
> find a container in a set, remove it from the set, update it and put it
> back into the set.
>
> val find : elt -> t -> elt (* yes! *)
>
> Finally I just copy-pasted set.mli and set.ml and inserted a find
> function... but is there a better solution?
What I did when faced with a similar problem was:
module MySet =
struct
module BaseSet = Set.Make(
struct
....
end)
include BaseSet
let find elt set = ...
end
Now of course that will only handle one data type. If you want
polymorphism, I suppose you could try something like:
module MySet =
struct
module Make =
functor(SomeMod:SOMETYPE) ->
struct
include Set.Make
let find elt set = ...
end
....
end
Though I haven't tried the more general approach.
--
Matt Gushee When a nation follows the Way,
Englewood, Colorado, USA Horses bear manure through
mgushee@havenrock.com its fields;
http://www.havenrock.com/ When a nation ignores the Way,
Horses bear soldiers through
its streets.
--Lao Tzu (Peter Merel, trans.)
-------------------
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