Shiny is a reactive programming framework, but it focusses mainly on the nuts and bolts of generating interactive analysis apps. shinySignals is an attempt to port more functional programming tools that compute on signals (reactives).
Currently, shinySignals only implements the Signal and Time libraries from the Elm programming language. It's expected that this package will grow over time to include useful techniques from other FRP frameworks, and to include uniquely R-like features.
shinySignals is currently only available on github. Run the following code to install it:
# install.packages("devtools")
devtools::install_github("hadley/shinySignals")
Compared to the Elm API, the main change is that the key signal always comes first. This leads to a more natural style of composition using %>%
:
library(shinySignals)
fps(30) %>% count()
step <- reactive({fps(30); sample(c(-1, 0, 1), 1)})
walk <- step %>% reducePast(`+`, 0)