January 2019
Intermediate to advanced
298 pages
7h 46m
English
It might not be immediately obvious how we can model rolling averages as observables. What we need to keep in mind is that pretty much anything we can think of as a sequence of values, we can probably model as an observable sequence.
Rolling averages are no different. Let's forget for a moment that the prices are coming from a network call wrapped in an observable. Let's imagine we have all of the values we care about in a Clojure vector:
(def values (range 10))
What we need is a way to process these values in partitions or buffers—of size 5—in such a way that only a single value is dropped at each interaction. In Clojure, we can use the partition function for this purpose:
(doseq [buffer (partition 5 1 values)] ...