From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: Jean-Christophe.Filliatre@lri.fr
Cc: caml-list@inria.fr
Subject: Re: module Set
Date: Fri, 17 Oct 1997 11:08:42 +0200 (MET DST) [thread overview]
Message-ID: <199710170908.LAA29437@pauillac.inria.fr> (raw)
In-Reply-To: <199710151402.QAA06284@sun-demons.lri.fr> from Jean-Christophe Filliatre at "Oct 15, 97 04:02:45 pm"
> I would like to know why, in the module Set, it is written that the
> order of the elements returned by the function "elements" is not
> specified, whereas the elements are actually sorted (it is a prefix
> traversal of a binary search tree).
Abstract data types have a specification and an implementation.
The specification usually does not specify everything about the
behavior of the implementation, if only to allow the implementation to
change later without breaking user's code.
In the case of Set, the ordering property you see is a consequence of
the implementation of sets as search trees. But other implementations
(e.g. using hashing) would break that property.
> I would like to use this property ; can't you give us this property in
> the module Set for the next release ?
I'd rather not. What you're looking for is not sets, but sets with
some extra ordering properties. Don't use the generic Set package, then.
Use your own Ordered_set package. (Feel free to cut and paste from
set.ml to implement it, of course.) Well-defined abstract interfaces
are more important that code sharing, in my opinion.
- Xavier Leroy
next prev parent reply other threads:[~1997-10-17 12:17 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-10-15 14:02 Jean-Christophe Filliatre
1997-10-17 9:08 ` Xavier Leroy [this message]
1997-10-17 13:46 ` Jean-Christophe Filliatre
1997-10-17 15:18 ` Judicael Courant
1997-10-17 15:38 ` Stefan Monnier
1997-10-20 8:04 ` Vincent Poirriez
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=199710170908.LAA29437@pauillac.inria.fr \
--to=xavier.leroy@inria.fr \
--cc=Jean-Christophe.Filliatre@lri.fr \
--cc=caml-list@inria.fr \
/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