Data transformation patterns

A good question about data transformation libraries richness would be: Where does such an overwhelming variety come from in the first place? Why do designers of F# include as many as hundred-something functions over base data collections into the core library?

I believe a single "right" answer to this question simply does not exist. However, some clues may come from considering a typical ETL - Extract, Transform, Load (https://en.wikipedia.org/wiki/Extract,_transform,_load) enterprise data crunching process. In the world of mutable collections and arbitrarily changing states, this operation can be expressed as follows:

void PerformETL() 
{ 
    ExtractData(); 
    TransformData(); 
    LoadData(); 
} 

This C#-like pseudocode demonstrates ...

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.