Dean and Gemawat: Simplified Data Processing on Large Clusters, OSDI, 2004.
Ralf Lämmel: Google's Map/Reduce Programming Model, Revisited, in: Science of Computer Programming, 2006. http://userpages.uni-koblenz.de/~laemmel/MapReduce/
mapReduce :: ( (k1,v1) -> [(k2,v2)] )
-> ( k2 -> [v2] -> v3 )
-> ( Map k1 v1 ) -> ( Map k2 v3 )
mapReduce m r
= reducePerKey r -- 3. Apply r to each group
. groupByKey -- 2. Group per key
. mapPerKey m -- 1. Apply m to each key/value pair