Functional reactive programming

Blackheath, Stephen

Functional reactive programming Stephen Blackheath, Anthony Jones - Shelter Island, NY : Manning Publications Co., c2016. - xxii, 337 p. : ill. ; 24 cm.

Includes index.

Stop listening! -- Core FRP -- Some everyday widget stuff -- Writing a real application -- New concepts -- FRP on the web -- Switch -- Operational primitives -- Continuous time -- Battle of the paradigms -- Programming in the real world -- Helpers and patterns -- Refactoring -- Adding FRP to existing projects -- Future directions.

Most software applications must handle user or system-generated events. The most widely-accepted event handling model is the Observer pattern, in which an object "listens" for changes in the application's state and then reacts by executing a unit of code-the problems is that this approach is prone to bugs. Functional Reactive Programming (FRP) is an alternative to the Observer pattern. It's designed to deal with events as a stream of values over time rather than as a series of unique responses to discrete changes in state, keeping logic tidy and eliminating the bugs that plague event handling code with no loss of expressiveness. FRP is useful anywhere the Observer pattern is common, including user interfaces, video games, networking, and industrial applications. Functional Reactive Programming teaches the concepts and applications of FRP. It begins with a careful walk-through of the FRP core operations and introduces the concepts and techniques needed to use FRP in any language. Following easy-to-understand examples, readers will learn how to use FRP in greenfield applications and how to refactor existing applications. Along the way, the book introduces the basics of functional programming in a just-in-time style, so readers never learn anything before they need to use it. By the end of the book, readers will be able to use FRP to spend more time adding features and less time fixing problems.

9781633430105


Functional programming (Computer science)
Application software--Development