2013-10-01
Monadic Functional Reactive Programming
Publication
Publication
Presented at the
ACM SIGPLAN Haskell Symposium, Boston, USA
Functional Reactive Programming (FRP) is a way to program reactive systems in functional style, eliminating many of the problems
that arise from imperative techniques. In this paper, we present an
alternative FRP formulation that is based on the notion of a reactive computation: a monadic computation which may require the
occurrence of external events to continue. A signal computation is a
reactive computation that may also emit values. In contrast to signals
in other FRP formulations, signal computations can end, leading to
a monadic interface for sequencing signal phases. This interface has
several advantages: routing is implicit, sequencing signal phases is
easier and more intuitive than when using the switching combinators found in other FRP approaches, and dynamic lists require much
less boilerplate code. In other FRP approaches, either the entire
FRP expression is re-evaluated on each external stimulus, or impure
techniques are used to prevent redundant re-computations. We show
how Monadic FRP can be implemented straightforwardly in a purely
functional way while preventing redundant re-computations.
Additional Metadata | |
---|---|
, | |
C Shan | |
doi.org/10.1145/2503778.2503783 | |
End-user scripting for visual software analysis | |
ACM SIGPLAN Haskell Symposium | |
Organisation | Software Analysis and Transformation |
van der Ploeg, A. (2013). Monadic Functional Reactive Programming. In C. Shan (Ed.), . doi:10.1145/2503778.2503783 |