* [Caml-list] Design question: functors or functions?
@ 2003-01-14 21:57 Brian Hurt
2003-01-15 1:05 ` james woodyatt
0 siblings, 1 reply; 2+ messages in thread
From: Brian Hurt @ 2003-01-14 21:57 UTC (permalink / raw)
To: Ocaml Mailing List
I have a design question for the list at large. I have a library I'm in
the process of cleaning up and finalizing, written in Ocaml. This is a
library implementing priority search queues- effectively balanced trees,
except I need both a way to compare keys and a way to compare the
priorities of the data items. Currently, the mli file reads in part:
type ('key, 'data) psq_t
val init: keycmp:('key -> 'key -> int) -> pricmp:('data -> 'data -> int)
-> ('key, 'data) psq_t
and the implementation stashes the functions keycmp and pricmp in the
datastructure itself. The question I have is wether I should instead be
using a functor. The reason I haven't is that I find the functor
interface to be somewhat unwieldy, although maybe I just haven't gotten
used to it yet.
Suggestions are welcome, indeed sought.
Brian
-------------------
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
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Caml-list] Design question: functors or functions?
2003-01-14 21:57 [Caml-list] Design question: functors or functions? Brian Hurt
@ 2003-01-15 1:05 ` james woodyatt
0 siblings, 0 replies; 2+ messages in thread
From: james woodyatt @ 2003-01-15 1:05 UTC (permalink / raw)
To: Brian Hurt; +Cc: The Trade
On Tuesday, Jan 14, 2003, at 13:57 US/Pacific, Brian Hurt wrote:
> [...] The question I have is wether I should instead be
> using a functor. The reason I haven't is that I find the functor
> interface to be somewhat unwieldy, although maybe I just haven't gotten
> used to it yet. [...]
I have a similar set of functional data structures, e.g. red-black
tree, skew-binary heap, catenable deque, etc., and I chose to use a
functor for transforming modules that define a key type and an
associated comparator function into modules that define the associated
data structure.
The reason: functions that take more than one instance of the data
structure often depend on both instances using the same ordering
function on the key type. The traditional way to get that is either
with functors or with classes. My general philosophy is to prefer the
lighter weight functors over classes, except when I really need
inheritance or the easier method invocation syntax is a clear win.
--
j h woodyatt <jhw@wetware.com>
-------------------
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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-01-15 1:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-14 21:57 [Caml-list] Design question: functors or functions? Brian Hurt
2003-01-15 1:05 ` james woodyatt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox