Push-pull functional reactive programming

Latest on Hackage:0.11.5

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

OtherLicense licensed by Conal Elliott
Maintained by
_Reactive_ [1] is a simple foundation for programming reactive systems
functionally. Like Fran/FRP, it has a notions of (reactive) behaviors and
events. Like DataDriven [2], Reactive has a data-driven implementation.

The inspiration for Reactive was Mike Sperber's Lula [3] implementation of
FRP. Mike used blocking threads, which I had never considered for FRP.
While playing with the idea, I realized that I could give a very elegant
and efficient solution to caching, which DataDriven doesn't do. (For an
application "f <*> a" of a varying function to a varying argument, caching
remembers the latest function to apply to a new argument and the last
argument to which to apply a new function.)

The theory and implementation of Reactive are described in the paper
"Push-pull functional reactive programming" [4].

Note that cabal[5], version or greater is required for installation.

You can configure, build, and install all in the usual way with Cabal

runhaskell Setup.lhs configure
runhaskell Setup.lhs build
runhaskell Setup.lhs install




== Version 0 ==

=== Version 0.8 ===

=== Version 0.8.1 ===

* Adding QuickCheck tests.

''Fill in missing versions''

=== Version 0.3 ===

* Commented out LANGUAGE pragmas and added OPTIONS_GHC -fglasgow-exts for ghc-6.6 compatibility.

=== Version 0.2 ===

* Fixed <hask>switcher</hask>. Didn't terminate. Thanks to Ivan Tomac for the bug report.

=== Version 0.1 ===

* Added <hask>Never</hask> constructor for Future. Allows optimizations, including a huge improvement for <hask>(>>=)</hask> on <hask>Event</hask> (which had been piling up <hask>never</hask>s).
* removed <code>-threaded</code> comment
* added <hask>traceR</hask> (reactive value tracing)
* use idler in <code>src/Examples.hs</code> (for single-threaded use of wxHaskell)

=== Version 0.0 ===

* New project.
comments powered byDisqus