Functional reactive programming
Most modern programming languages support functional programming constructs. Functional programming constructs such as Map/Reduce, Filter, Fold, and so on are good for processing streams. Programming asynchronous data streams using functional programming constructs is called functional reactive programming. This is gaining more traction among the developers these days.
The FRP programs can be classified as push-based and pull-based. The pull-based system waits for a demand to push the data streams to the requestor (or subscriber in our case). This is the classic case where the data source is actively polled for more information. This employs the iterator pattern, and IEnumerable <T>
/IEnumerator <T>
interfaces are specifically designed for such scenarios that are synchronous in nature (application can block while pulling data). On the other hand, a push-based system aggregates the events and pushes through a signal network to achieve the computation...