English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[Caml-list] [ANN] The Missing Library
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-04-28 (13:40)
From: skaller <skaller@u...>
Subject: Re: [Caml-list] [ANN] The Missing Library
On Wed, 2004-04-28 at 22:36, Nicolas Cannasse wrote:

> There is ExtLib Enum.map that's pretty good at doing that.

Yes indeed. Extlib enums are very promising.

> That's exactly the same as ExtLib enums : define an enumerator for your data
> structure, and you can apply a full range of algorithms on it. I don't
> really understand the difference with  STL.

I think there are a couple of differences.

First, Extlib enums are weaker than STL iterators abstractly.
An enum is a single object representing the *tail* of an enumeration.
An STL iterator represents a *position*. Thus for example
two STL iterators represent the tail of an enumeration.
This is much more powerful (and also less safe dynamically).
STL iterators can also be used to denote insertion points,
result of a search, etc.

Secondly, the semantics of STL iterators are more refined
and better specified. There are several classes of STL
iterators (input, output, forward, bidirectional, ..).
Also the invalidation conditions are dealt with
in detail. STL iterators also have minimum laziness
of one value..the laziness of enums is not quite
so well defined... recall I had some problems
with the specifications and still do.

However, given an enumeration, I agree there is 
some kind of polyadic behaviour represented.

John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850, 
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net

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