← Back to team overview

multi-touch-dev team mailing list archive

Functional Reactivity

 

Efficient Purely Functional Reactivity is a really interesting paper
relating to reactive programming. The paper has some pretty advanced
concepts from Haskell but at the very least it will show you that there's a
lot of research that we could use to support MT work (specifically, API
design).

Functional reactive programming (FRP) supports elegant programming of
dynamic and reactive systems by providing first-class, composable
abstractions for behaviors (time-varying values) and events (streams of
timed values) (Elliott and Hudak 1997; Nilsson et al. 2002).1 Behaviors can
change continuously (not just frequently), with discretization introduced
automatically during rendering. The choice of continuous time makes programs
simpler and more composable than the customary (for computer programming)
choice of discrete time, just as is the case with continuous space for
modeled imagery. For instance, vector and 3D graphics representations are
inherently scalable (resolution-independent), as compared to bitmaps (which
are spatially discrete). Similarly, temporally or spatially infinite
representations are more composable than their finite counterparts, because
they can be scaled arbitrarily in time or space, before being clipped to a
finite time/space window.

 While FRP has simple, pure, and composable semantics, its efficient
implementation has not been so simple. In particular, past implementations
have used demand-driven (pull) sampling of reactive behaviors, in contrast
to the data-driven (push) evaluation typically used for reactive systems,
such as GUIs. There are at least two strong reasons for choosing pull over
push for FRP.


 http://conal.net/papers/simply-reactive/reactive.pdf


David

Follow ups