November 2017
Intermediate to advanced
670 pages
17h 35m
English


Gibbons and Oliveira explored an FP solution to the OOP iterator pattern. They used imperative iterations patterns and observed that data is mapped element-by-element with accumulation and can return an object of the same shape, that is, a transformed list of elements.
They took Kernighan and Ritchie's imperative wordcount program (in the following C# code) and created an alternative implementation using traversal operators and applicative functor techniques:
public static int[] wc<char> (IEnumerable<char> coll) {