Implementations in Scala, but conceptually should apply to all FP languages
Reactive programming is about reacting to sequences of events that happen in time
Functional view: Aggregate an event sequence into a signal.
A signal is a value that changes over time