In the following exercises, you will need to implement different
Observable objects. The exercises show different use cases for
Observable objects, and contrast the different ways of creating
Observable objects. Also, some of the exercises introduce new reactive programming abstractions, such as reactive maps and reactive priority queues.
Implement a custom
Observable[Thread]object that emits an event when it detects that a thread was started. The implementation is allowed to miss some of the events.
Observableobject that emits an event every 5 seconds and every 12 seconds, but not if the elapsed time is a multiple of 30 seconds. Use functional combinators on
randomQuotemethod from this section in order to create an
Observableobject with the moving average of the quote lengths. Each time a new quote arrives, a new average value should be emitted.
Implement the reactive signal abstraction, represented with the
Signal[T]type. The type