The earliest full-fledged FRP implementation for JavaScript was Flapjax – work on it dates all the way back to 2006!
The paper Flapjax: A Programming Language for Ajax Applications is worth reading.
http://cs.brown.edu/~sk/Publications/Papers/Published/mgbcgb...
The principal designer and maintainer of the Elm Language (a functional reactive lang that compiles to JS) did his Master's Thesis on FRP, and that's a great resource if you want the big picture:
https://www.seas.harvard.edu/sites/default/files/files/archi...
See also Controlling Time and Space: understanding the many formulations of FRP, by the same author:
FRP is deterministic and referentially transparent, frp is not. Key concepts in FRP are behaviors, events, signals; key concepts in frp is streams, observables, subscriptions. Although I'm not expert with either, there's a lot of overlap and term overloading, and I might be explaining this all badly anyway.
The "real" FRP is great for describing non-interactive things. They can be used to describe anumations: e.g. a FRP behavior can describe the position of a ball as a function of time:
ballPosition :: t -> Position
whereas in "quasi" frp, the ballPosition is a stream of Position values: ballPosition :: (Stream Position)
Basically, quasi FRP is what you get when you sample real FRP at certain times :)https://medium.com/@andrestaltz/2-minute-introduction-to-rx-...
This is a discussion over the controversy of calling stuff FRP in academia vs. real world:
https://medium.com/@andrestaltz/why-i-cannot-say-frp-but-i-j...
Basically: something incredibly powerful and clever that will not be adopted by the wider developer community until someone figures out how to present it in a way that makes it accessible to someone who isn't deeply interested in academia.
https://en.wikipedia.org/wiki/Functional_reactive_programmin...