Browse thread
[Caml-list] [ANN] The Missing Library
-
John Goerzen
-
Kenneth Knowles
- Alexander V. Voinov
-
John Goerzen
-
Maxence Guesdon
-
John Goerzen
- Maxence Guesdon
-
John Goerzen
-
Alain.Frisch@e...
-
John Goerzen
-
Alain.Frisch@e...
-
Nicolas Cannasse
-
Yamagata Yoriyuki
- Gerd Stolpmann
-
Nicolas Cannasse
-
Yamagata Yoriyuki
- Jacques GARRIGUE
- Nicolas Cannasse
-
Yamagata Yoriyuki
-
Yamagata Yoriyuki
-
Nicolas Cannasse
- oliver@f...
-
Alain.Frisch@e...
-
John Goerzen
- Henri DF
- Shawn Wagner
- james woodyatt
-
Alain.Frisch@e...
- Basile STARYNKEVITCH
-
John Goerzen
- Kenneth Knowles
- Florian Hars
-
Maxence Guesdon
- Eric C. Cooper
-
Kenneth Knowles
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Jean-Christophe Filliatre <Jean-Christophe.Filliatre@l...> |
| Subject: | Re: [Caml-list] [ANN] The Missing Library |
skaller writes: > > > > I'm wondering what concepts Ocaml can't express/enforce? > > > > > > Iterators. > > > > Why can't you do this kind of in ocaml? Returning something like a > > "next" function would seem to give you a very basic (but usable) > > iterator. Which part of the iterator abstraction can't you do? > > I suggest you try it. I don't know how to answer the question. Perhaps I missed something in this thread but it is not so difficult to write iterators in ocaml (of course it can not be done in a systematic way --- may be that was John's point). In ocamlgraph we provide depth-first and breadth-first graph traversal both as HOF and as iterators. Iterators have the following signature: ====================================================================== type iterator val start : G.t -> iterator val step : iterator -> iterator val get : iterator -> G.V.t ====================================================================== (where G.t is the type of graphs). It was a lot of fun coding these itearators, and very useful to write a backtracking algorithm to colors graphs. It was particularly easy as iterators are implemented as persistent data structures: thus there is no `undo' part in the backtracking code. I guess one cannot write a backtracking algorithm using the usual HOF fold function. If one is interested the code is here: http://www.lri.fr/~filliatr/ocamlgraph/ -- Jean-Christophe Filliātre ------------------- 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