Programming time-dependent signals like animations involves expressing both continuous and discrete changes in signal values. The method of functional reactive programming (FRP) represents this simply and effectively as discrete modes of an otherwise continuous signal. In variants of FRP based on arrows, programs are composed not of signals but rather functions on signals. Accordingly, these signal functions can switch between discrete modes of operation. However, the literature emphasizes expressions of mode switching that are unnecessarily limited. An analysis of their limitations indicates the need for two new, primitive transformations of signal functions. These transformations help to define a monad that represents signal function modes, and this allows programmers to express switching in an imperative, script-like style. This scripting interface gains flexibility and power from several novel operations, including a general-purpose mapping between modes and a combination that mixes two concurrent modes into one. We demonstrate its usefulness with several examples.
Thu 27 AugDisplayed time zone: Eastern Time (US & Canada) change
14:30 - 16:10 | Paper Session 2 - Animations and DemonstrationsHaskell at Haskell Chair(s): Exequiel Rivas Inria Paris | ||
14:30 30mTalk | A Low-Latency Garbage Collector for GHC (Demo) Haskell | ||
15:00 30mTalk | Relational Lenses as a Library (Demo) Haskell Rudi Horn University of Edinburgh File Attached | ||
15:30 30mTalk | Scripted Signal Functions Haskell David A. Stuart None DOI | ||
16:00 10mOther | PC Chair Report Haskell Tom Schrijvers KU Leuven |