The sequence: Duality of data and calculation

What makes the F# sequence so ambient and versatile is its dual nature. Being a strongly typed generic data collection, it exposes the contained data via two archetypal .NET interfaces of the System.Collections.Generic namespace, namely IEnumerable<T> (https://msdn.microsoft.com/en-us/library/9eekhta0(v=vs.110).aspx) and IEnumerator<T> (https://msdn.microsoft.com/en-us/library/78dfe2yb(v=vs.110).aspx).

These interfaces personify the classic data pull protocol, where a data consumer actively pulls data from the producer. Indeed, the type of seq<'T> in the F# is defined as the following abbreviation:

type seq<'T> = System.Collections.Generic.IEnumerable<'T> 

The preceding line of code means in practice ...

Get F# 4.0 Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.