<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\begin{slide}{Map/Reduce}

Dean and Gemawat: 
\emph{Simplified Data Processing on Large Clusters},
OSDI, 2004.

Ralf LÃ¤mmel: 
\emph{Google's Map/Reduce Programming Model, Revisited}, 
in: Science of Computer Programming, 2006.
\url{http://userpages.uni-koblenz.de/~laemmel/MapReduce/}

\begin{verbatim}
mapReduce :: ( (k1,v1) -&gt; [(k2,v2)] )
          -&gt; ( k2 -&gt; [v2] -&gt; v3 )
          -&gt; ( Map k1 v1 ) -&gt; ( 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
\end{verbatim}

\end{slide}
</pre></body></html>