On Github lawnsea / jqcon-making-pigs-fly
If this description is gibberish to you, consult (a) Denotational design with type class morphisms, (b) Push-pull functional reactive programming (ignoring the implementation bits), and (c) the Denotational Semantics Haskell wikibooks page.
Functional reactive programming is "a programming paradigm for reactive programming using the building blocks of functional programming"
That's like, monads and _.map right?
Functional programming "treats computation as the evaluation of mathematical functions and avoids state and mutable data"
Reactive programming is "a programming paradigm oriented around data flows and the propagation of change"
Flight is a "lightweight, component-based JavaScript framework that maps behavior to DOM nodes"
Bacon.js is a "small functional reactive programming lib for JavaScript" that "turns your event spaghetti into clean and declarative feng shui bacon"
Reactive objects that can be subscribed to and transformed
Two types: EventStream and Property
A stream of events that can be subscribed to and transformed functionally via map and reduce, e.g.
An EventStream represents one or more discrete values in time
A reactive property that has a "current value" that can be sampled or subscribed to.
A Property represents a single continuous values in time
https://github.com/lawnsea/jqcon-simon-says
npm install
grunt serve
Then load http://localhost:9099