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