Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Efficiency of 'a list
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2003-05-05 (13:33)
From: John Max Skaller <skaller@o...>
Subject: Re: [Caml-list] Two types of efficiency (Was Efficiency of 'a list)
Yaron M. Minsky wrote:

> You're kidding, right?  You're making a classic "best is enemy of the
> good" mistake here.  

With due respect, there is always the other side of the coin.
What is thought to be "good enough" often enough turns out later
to be ill-considered and a major disaster. Indeed one could
make a hypothesis that this is *necessarily* the case,
since "good enough" really means "we don't really understand
the requirements".

I'm not trying to flame, so much as suggesting that
"when in doubt leave it out" isn't such a bad principle.

As an example: functorial set interface vs. one using
type variables. Well, most of us seem to think
that the type variable interface is more convenient
most of the time.

But before the Ocaml team rushes ahead and provides
it *in addition* to the existing functorial interface,
it might be a good idea to enquire about how the two
are related on a theoretical level. It might be an idea
to devise some principle for deciding which kinds of
interfaces to provide in a library, since the issue is
likely to arise again.

It may even be an idea to figure out if the theoretical
relationship between the two representations can somehow
be connected with language syntax so the transformation
from one kind to the other can be done easily by
a dumb user (like me), obviating the need for
providing an exponential set of interfaces.

The same applies to classes, since some data structures
are mutable enough one wonder why classes weren't used,
since dynamic binding to abstractions seems to provide
some advantages over both type variables and functors
in some circumstances.

As an example: streams. Well, there WAS built in support
for streams, but it was removed -- you can get the code
to work now using camlp4, which is now part of the standard

So just maybe strengthening camlp4 is better way forward
then providing built-in syntactic support for more
data structures: rather, it may be better to *eliminate*
existing support, for example, for arrays (by delegating
the job to camlp4).

John Max Skaller,
snail:10/1 Toxteth Rd, Glebe, NSW 2037, Australia.

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: