Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Patai Gergely <patai_gergely <at> fastmail.fm>
Subject: ANN: Elerea 1.2.3 with some enhancements
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Sunday 31st January 2010 10:03:11 UTC (over 6 years ago)
Hello all,

I added a few new features to the experimental branch of Elerea [1], my
little FRP library. The previous release added random sources -- both
noise signals and instantaneous values within generators -- using
mersenne-random, and the current update added an extra primitive to
handle external events that can occur several times between samplings,
as I heard some people needed this. All the three variants of the
experimental interface support these additions.

Here's a simple example showing how the new externalMulti construct can
be used:

import Control.Monad
import FRP.Elerea.Experimental.Simple

main = do
  (gen,sink) <- externalMulti
  sig <- start $ do
    vals <- gen
    cnt <- stateful 10 (+1)
    return (liftM2 (:) cnt vals)
  let act = print =<< sig
  act
  sink 3
  act >> act
  sink 8 >> sink 2
  act
  sink 1 >> sink 7 >> sink 9
  act >> act >> act
  sink 4
  act

The program prints the following:

[10]
[11,3]
[12]
[13,2,8]
[14,9,7,1]
[15]
[16]
[17,4]

As you can see, all the input received since the last sampling is
collected in a list in reverse order. It is up to the programmer to
store these values somewhere or build further IO actions out of them.

Gergely

[1] http://hackage.haskell.org/package/elerea

-- 
http://www.fastmail.fm - Does exactly
what it says on the tin
 
CD: 4ms