This respository collects tutorials, guidelines, examples, patterns and half-baked ideas on functional reactive programming (FRP).
At the moment, it is organized a bit like a curated Wiki. If you've found a nice code pattern, or a cool link, don't hesitate to make a pull request.
The focus is on FRP libraries written in Haskell, using the style originally pioneered by Conal Elliott, and developed e.g. in the reactive-banana, frpnow or sodium libraries.
All written material here is licensed under a Creative Commons BY-SA 4.0 License. Any source code snippets or examples used here are released to the public domain.
- Heinrich Apfelmus
- Introduction to Functional Reactive Programming — Slides and video link for a introductory talk I gave at Bobkonf 2016
- The Model-View-Controller Pattern and Functional Reactive Programming — Three useful principles for structuring GUI code.
-
FRP was pioneered by Conal Elliott and his writings are a good source on the topic.
- "Functional Reactive Animation" — This is the seminal paper that started the whole FRP thing. It's still a nice, though somewhat outdated overview of FRP.
- "Declarative event-oriented programming" — Practial example that demonstrates the utility of FRP for GUI programming. Excellent introduction to the general programming philosophy.
- "Push-pull functional reactive programming" — Good read for understanding how the model is mapped to an API in terms of applicative and other functors.
-
Stephen Blackheath and Anthony Jones have written a book "Functional Reactive Programming". It is an introduction to FRP using Java as the main language, but it also describes several patterns that occur in practice.
-
Joachim Breitner's course CIS 194: Introduction to Haskell also includes a nice tutorial of FRP.
-
Paul Johnson's short tutorial on using Reactive Banana with GTK3.