In this chapter, we will take a deep dive into one of the most essential and utterly important arrangements of functional programming, that is, sequences. The ability to represent any data transformation as a composition of atomic functions applied to the elements of an arbitrary enumerable data container is a must for a functional programmer. The goal of this chapter is to help you acquire this mental skill. The way towards this goal is paved by the following topics covered here:
Review the basic data transformations and partition the immense host of standard library data transformation functions by handful of underlying processing patterns
Consider the duality of sequence data generators being at once a data and an on-demand calculation
Cover how a sequence generalizes arbitrary collections by enumerating them, which represents the pull data transformation pattern
Further consider just another pattern of using generated sequences...