the building blocks of a program • Avoid mutable data and side effects • x′ = f(x) • Reactive • Emphasize data flow and propagation of change • Similar to Observer pattern • a := b + c λ !5
public interface IObserver<in T> { 3 //Provides the observer with new data. 4 void OnNext(T value); 5 6 // Notifies the observer that the provider has 7 // experienced an error condition. 8 void OnError(Exception error); 9 10 // Notifies the observer that the provider has 11 // finished sending push-based notifications. 12 void OnCompleted(); 13 } !7