caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Benjamin Pierce <bcpierce@dsl-207-245-69-66.cust.oldcity.dca.net>
Cc: caml-list@inria.fr
Subject: Re: Functional Reactive Programming in OCaml?
Date: Mon, 29 Nov 2004 22:02:52 -0500	[thread overview]
Message-ID: <13110.1101783772@dsl-207-245-69-66.cust.oldcity.dca.net> (raw)
In-Reply-To: Your message of Sun, 28 Nov 2004 19:44:10 -0500. <4854.1101689050@dsl-207-245-69-66.cust.oldcity.dca.net>

Many thanks to all those who've replied so far to my query about Functional
Reactive Programming in OCaml.  I got some very interesting pointers, but
none closely related to what I was looking for.

I should have been more precise in what I asked -- "FRP" in the Haskell
community is a term with a much more specific technical meaning than just
"reactive programming in a functional style": I was thinking of the line of
work initiated by Conal Eliott and Paul Hudak in their Fran library and
continued in systems like Frob, Fruit, and recently Yampa.  

The common idea in these systems is to introduce an abstraction of "signals"
-- roughly, functions from time to "values", where the values can be
anything from real numbers (conventional signal-processing-type signals) to
two- or three-dimensional pictures, to booleans (representing events).
What's special is that time is represented as a continuous, real-number
quantity.  They do all kinds of work behind the scenes to actually compute
with behaviors, but what shows through in the API is a very simple, elegant,
and powerful set of primitives that can be combined in straightforward ways
to achieve very complex effects.  See http://www.haskell.org/frp/ for more
info. 

So... is anybody doing THAT in OCaml?

Thanks for any (more) pointers,

   Benjamin



> I'm sure that, like me, many of you have experienced language-envy when you've seen the very cool libraries for Functional Reactive Programming (Fran, Frob, Yampa, etc.) that have been implemented in the Haskell world.
> 
> Has anybody tried to do something similar in OCaml?  At first sight, it does not seem trivial: the implementations of FRP that I've seen make good use of many of Haskell's special features -- laziness, type classes and qualified types, monads, etc...
> 
> Thanks for any pointers,
> 
>     - Benjamin
> 
> -----------------------------------------------------------------------------
> BENJAMIN C. PIERCE, Professor                                               
> Dept. of Computer & Information Science     
> University of Pennsylvania                                    +1 215 898-2012
> 3330 Walnut St.                                          Fax: +1 215 898-0587
> Philadelphia, PA 19104, USA                http://www.cis.upenn.edu/~bcpierce
> -----------------------------------------------------------------------------


  parent reply	other threads:[~2004-11-30  3:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-29  0:44 Benjamin Pierce
2004-11-29 18:02 ` [Caml-list] " james woodyatt
2004-11-30  3:02 ` Benjamin Pierce [this message]
2004-11-30 17:33   ` [Caml-list] " Vincenzo Ciancia
2004-12-01 17:14     ` Florian Hars
2004-12-02  8:04       ` Vincenzo Ciancia

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=13110.1101783772@dsl-207-245-69-66.cust.oldcity.dca.net \
    --to=bcpierce@dsl-207-245-69-66.cust.oldcity.dca.net \
    --cc=bcpierce@cis.upenn.edu \
    --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;
as well as URLs for NNTP newsgroup(s).