Origins and ecosystem

About the origins of the functional reactive paradigm and the current reactive programming ecosystem.




Reactive programming: history and ecosystem

Reactive programming: origins

Elm language

The essence of FRP

React-redux and redux-observable demo

Concluding words


1: Are there standards for reactive programming?
yes (the reactive-streams standard on the JVM)
2: What is a behavior in Conway’s functional reactive animations library?
f(time) -> value
f(value) -> time
List[(time, value)]
f(time) -> List[value]
3: What is an event in Conway’s functional reactive animations library?
List[(time, value)]
f(time) -> value
f(value) -> time
f(time) -> List[value]
4: What operator defines a reactive behavior in Conway’s FRP library?
“until”: ba until e -> bb
flatMap: ba flatMap e -> bb
map: ba map e -> bb
debounce: ba debounce e -> bb
5: What does lifting a function into the Signals domain mean?
for a function a -> b, we transform it into a function signal a -> signal b
for a function a -> b, we transform it into a function signal a -> b
we elevate the function abstraction level so that it can be reused for defining signals
6: How do you increment a variable in Elm?
you don’t use a variable, but a foldp function
you can’t, since variables are immutable in Elm
count = count + 1
7: What are the four essential effects in programming?
single value, multiple values, future value, value stream
inspiration, frustration, lack of sleep, geekiness
push, pull, sychronous, asychronous
8: How do we make sure that our code handles timeouts correctly?
with a unit test that replaces the scheduler with a virtual scheduler
with a unit test that waits for the corresponding delay
with an integration test that runs during the night