Hi,

I've found Sasha's example
> import FRP.Reactive
> import FRP.Reactive.LegacyAdapters
> import Control.Concurrent
> type BellMachine = Event () -> Event ()
> doorBell :: BellMachine
> doorBell = id
> runMachine :: BellMachine -> IO ()
> runMachine machine = do
> -- get button press
> clock <- makeClock
> (buttonPressed, buttonPressedSink) <- makeEvent clock
> forkIO $ buttonPresses buttonPressedSink
> adaptE (fmap bell $ machine buttonPressed)
> -- run the machine
> where bell = const $ print "beep!"
> buttonPresses sink = sequence_ $ repeat $ (getChar >> sink ())
> main = runMachine doorBell
and it fits my purposes, but notice that the values collected from the makeEvent function must be in reverse order, at least with reactive-0.11.

> (buttonPressedSink, buttonPressed) <- makeEvent clock

Regards,

Alvaro.

---------- Mensaje reenviado ----------
De: Álvaro García Pérez <agarcia@babel.ls.fi.upm.es>
Fecha: 8 de junio de 2009 11:57
Asunto: First steps in FRP
Para: reactive@haskell.org


Hello,

I'm new to FRP and I'm trying to write a simple program adapting the events to IO. I've read the tutorial "Introducing Reactive: Events" but it's not very clear how to do it. Can someone send me an example? I would like to capture events from IO (let's say, keyboard strokes) and print text in the console. I'm using the last version of the reactive package.

Thanks,

Alvaro.