Difference between revisions of "Reactive-banana"
Line 3: | Line 3: | ||
<div style="float:left;"> |
<div style="float:left;"> |
||
[[Image:Reactive-Banana-banana.png|Reactive banana displaying trigger-happy <code>Behavior</code>.]]</div> |
[[Image:Reactive-Banana-banana.png|Reactive banana displaying trigger-happy <code>Behavior</code>.]]</div> |
||
− | ''Reactive-banana'' is a library for [[Functional Reactive Programming]] (FRP). |
+ | ''Reactive-banana'' is a practical library for [[Functional Reactive Programming]] (FRP). |
Support the project with a small donation: [http://flattr.com/thing/384682/reactive-banana http://api.flattr.com/button/flattr-badge-large.png] |
Support the project with a small donation: [http://flattr.com/thing/384682/reactive-banana http://api.flattr.com/button/flattr-badge-large.png] |
||
Line 10: | Line 10: | ||
The specific goal of the library is to provide a solid foundation. |
The specific goal of the library is to provide a solid foundation. |
||
− | * Users can finally use FRP to program '''graphical user interfaces''' as the library can be hooked into ''any'' existing event-based framework like [[wxHaskell]] or [[Gtk2Hs]]. A plethora of [[#documentation|example code]] helps with getting started. |
+ | * Users can finally use FRP to program '''graphical user interfaces''' as the library can be hooked into ''any'' existing event-based framework like [[wxHaskell]] or [[Gtk2Hs]]. A plethora of [[#documentation|example code]] helps with getting started. Your can mix FRP and imperative style. If you don't know how to express functionality in terms of FRP, just temporarily switch back to the imperative style. |
− | * Programmers interested in implementing FRP will have a '''reference''' for a '''simple semantics''' with a working implementation. |
+ | * Programmers interested in implementing FRP will have a '''reference''' for a '''simple semantics''' with a working implementation. We stay close to the semantics pioneered by Conal Elliott. |
* It features an '''efficient implementation'''. No more spooky time leaks, predicting space & time usage should be straightforward. |
* It features an '''efficient implementation'''. No more spooky time leaks, predicting space & time usage should be straightforward. |
||
Revision as of 16:28, 23 March 2012
What is it?
Reactive-banana is a practical library for Functional Reactive Programming (FRP).
Support the project with a small donation:
FRP offers an elegant and concise way to express interactive programs such as graphical user interfaces, animations, computer music or robot controllers. Thus, the reactive-banana library promises to avoid the spagethetti code commonly used in traditional GUI technologies.
The specific goal of the library is to provide a solid foundation.
- Users can finally use FRP to program graphical user interfaces as the library can be hooked into any existing event-based framework like wxHaskell or Gtk2Hs. A plethora of example code helps with getting started. Your can mix FRP and imperative style. If you don't know how to express functionality in terms of FRP, just temporarily switch back to the imperative style.
- Programmers interested in implementing FRP will have a reference for a simple semantics with a working implementation. We stay close to the semantics pioneered by Conal Elliott.
- It features an efficient implementation. No more spooky time leaks, predicting space & time usage should be straightforward.
Feedback is welcome, I want to hear from you!
Status
Current development focuses on dynamic event switching. Examples from game programming and computer music are planned.
- 24 October 2011: reactive-banana 0.4.3.0 released.
- 26 September 2011: Added some more examples, reactive-banana 0.4.2.0 released.
- 14 July 2011: Implemented many examples, reactive-banana 0.4.1.0 released.
- 22 June 2011: reactive-banana 0.3.0.0 released
- 28 April 2011: reactive-banana 0.2.0.0 released
Fake Testimonials
"In the programming-language world, one rule of survival is simple: dance or die. This library makes dancing easy." – Simon Banana Jones
"About the use of language: it is impossible to sharpen a pencil with a blunt axe. You should try reactive-banana instead." — Event Dijkstra
"When I need a bullet
event, I can just trigger it." — Billy the Reactive Banana
Releases and Resources
- Download on Hackage
- reactive-banana - the FRP library itself
- reactive-banana-wx - binding to the wxHaskell GUI library
- Documentation
- Feedback and Contact
- Maintainer: Heinrich Apfelmus <apfelmus at quantentunnel de>
- Bugs and feature requests? Issue Tracker!
- Questions? Ask on StackOverflow!
- Source code on github
- reactive-banana development branch
- reactive-banana-wx development branch
External Links
No external links yet.