Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
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


  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