From: Arnaud Spiwack <Arnaud.Spiwack@lix.polytechnique.fr>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] [OSR] OCaml Standard Recommandation Process
Date: Mon, 28 Jan 2008 23:07:04 +0100 [thread overview]
Message-ID: <479E5208.6080603@lix.polytechnique.fr> (raw)
In-Reply-To: <479E04E6.5000303@janestcapital.com>
>
> Monads strike me as being a better way to do this, but again, we're
> talking about deep changes to Ocaml.
Monads are no more than a pair of functions (there are four in Haskell
presentation of these, but two of them can be defined automatically).
They not only exist by essence, but there also is a camlp4 extension
(rather short actually) which gives them a nice notation looking :
perform
p <-- e;
q <-- f;
return a
You can specify a module name after the "perform" keyword when using
several monads. This camlp4 extension is pa_monad (authored by Oleg
Kiselyov, Lydia E. van Dijk, and Jacques Carette), it works both with
camlp4 3.10 and previous version by the way (plus camlp5 I guess).
Actually, there are a couple of developpement that use monads : Jérôme
Vouillon's Lwt (lightweight, monadic, cooperative threads) are a monad.
On a more personnal note, my current developpement (somewhere deep
inside the code of the proof assistant Coq) uses a monad as well.
The downside is that sometimes monad might be slower than other
approaches (there are more closure built than necessary). At least in
the current runtime and compiler.
But I guess we're going (again) off topic... We probably have to start
having wiki discussions ;) .
Arnaud Spiwack
next prev parent reply other threads:[~2008-01-28 22:07 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-27 13:23 David Teller
2008-01-27 13:52 ` [Caml-list] " Paolo Donadeo
2008-01-27 14:24 ` Yaron Minsky
2008-01-27 19:07 ` David Teller
2008-01-27 21:07 ` Jon Harrop
2008-01-27 21:47 ` Yaron Minsky
2008-01-28 11:06 ` David Teller
2008-01-28 12:04 ` Jon Harrop
2008-01-28 12:31 ` David Teller
2008-01-28 14:23 ` Brian Hurt
2008-01-28 15:15 ` Loup Vaillant
2008-01-28 15:40 ` Brian Hurt
2008-01-28 19:46 ` Jon Harrop
2008-01-28 15:25 ` Jon Harrop
2008-01-28 16:06 ` Christophe TROESTLER
2008-01-28 16:20 ` Nicolas Pouillard
2008-01-28 16:45 ` Christophe TROESTLER
2008-01-28 16:51 ` Olivier Andrieu
2008-01-28 19:58 ` Jon Harrop
2008-01-29 7:51 ` Gordon Henriksen
2008-01-28 20:49 ` Jon Harrop
2008-01-28 22:05 ` Till Varoquaux
2008-01-28 23:10 ` Jon Harrop
2008-01-28 16:37 ` Brian Hurt
2008-01-28 17:30 ` David Teller
2008-01-28 20:43 ` Jon Harrop
2008-01-28 21:12 ` Gerd Stolpmann
2008-01-28 21:39 ` Jon Harrop
2008-01-29 16:49 ` Edgar Friendly
2008-01-30 8:52 ` Sylvain Le Gall
2008-01-30 10:02 ` [Caml-list] " Jon Harrop
2008-01-30 12:12 ` Vincent Hanquez
2008-01-28 21:43 ` [Caml-list] " Dario Teixeira
2008-01-29 7:59 ` Francois Pottier
2008-01-28 22:07 ` Arnaud Spiwack [this message]
2008-01-27 14:36 ` Michaël Grünewald
2008-01-27 15:10 ` Dario Teixeira
2008-01-28 13:38 ` Sylvain Le Gall
2008-01-28 13:52 ` [Caml-list] " David Teller
2008-01-28 0:23 ` [Caml-list] " Oliver Bandel
2008-01-30 9:43 ` Sylvain Le Gall
2008-01-30 20:25 ` [Caml-list] " blue storm
2008-01-30 20:49 ` Sylvain Le Gall
2008-01-30 20:54 ` [Caml-list] " Eric Cooper
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=479E5208.6080603@lix.polytechnique.fr \
--to=arnaud.spiwack@lix.polytechnique.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