From: Markus Mottl <markus@mail4.ai.univie.ac.at>
To: "Krishnaswami, Neel" <neelk@cswcasa.com>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] A G'Caml question" + additional info
Date: Fri, 13 Jul 2001 11:34:46 +0200 [thread overview]
Message-ID: <20010713113446.A412@chopin.ai.univie.ac.at> (raw)
In-Reply-To: <B1E4D3274D57D411BE8400D0B783FF322E865D@exchange1.cswv.com>; from neelk@cswcasa.com on Thu, Jul 12, 2001 at 17:30:00 -0400
On Thu, 12 Jul 2001, Krishnaswami, Neel wrote:
> If desired, I can offer a red-black tree implementation that implements
> the whole Map and Set interfaces. (I wonder how many other people have
> been inspired by that Okasaki paper?)
Having tried RedBlackSet as presented in Okasaki's book a while ago,
I was rather disappointed. It didn't perform faster (rather slower)
than the Set-module (balanced binary trees) on some quick examples that
I had tried. But maybe my simple tests were not representative.
> > Note that the non-polymorphic version also has advantages for
> > users: e.g. they don't have to pass around comparison functions
> > all the time.
>
> ??? I don't understand this. In both the object version I posted
> and the functorial version that Brian Rogoff posted, a hacker
> only needs to mention the comparison function when creating the
> type, and then never again when making or using trees.
In the functorial version you naturally have to use a functor application.
I meant a polymorphic implementation without functors, since I think
you had complained somewhere about having to apply functors. This was
probably not obvious from my text.
> In fact, my first experiment along these lines was to use a record
> with a tree and a comparison function in it. But even there, one
> could use currying to mention the function comparison only once.
> (I rejected it because it permitted trees with different but type-
> compatible comparison functions to intermix.)
But you have to manually curry every Set-function you want to use at
least once. The functor application creates the closures for the whole
Set-module at once.
Regards,
Markus Mottl
--
Markus Mottl markus@oefai.at
Austrian Research Institute
for Artificial Intelligence http://www.oefai.at/~markus
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
next prev parent reply other threads:[~2001-07-13 9:35 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-07-12 21:30 Krishnaswami, Neel
2001-07-13 9:34 ` Markus Mottl [this message]
-- strict thread matches above, loose matches on Subject: below --
2001-07-13 13:12 Krishnaswami, Neel
2001-07-13 13:35 ` Markus Mottl
2001-07-11 23:10 Krishnaswami, Neel
2001-07-12 0:08 ` Brian Rogoff
2001-07-11 22:23 Krishnaswami, Neel
2001-07-11 22:47 ` Brian Rogoff
2001-07-12 9:37 ` Markus Mottl
2001-07-14 2:04 ` John Max Skaller
2001-07-14 3:00 ` Alexander V. Voinov
2001-07-14 15:00 ` John Max Skaller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010713113446.A412@chopin.ai.univie.ac.at \
--to=markus@mail4.ai.univie.ac.at \
--cc=caml-list@inria.fr \
--cc=neelk@cswcasa.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox