\begin{slide}{Programmtransformationen}

der Compiler kann Programme umformen,
damit Objekte, die gleich wieder konsumiert werden,
gar nicht erst erzeugt werden, z. B.
\begin{verbatim}
map f . map g = map (f . g)
\end{verbatim}
Umformungen (refactoring) leicht möglich,
da keine Nebenwirkungen zu berücksichtigen.
\bigskip

Dabei ist \verb|(.)| die Funktionskomposition 
\begin{verbatim}
(.) :: ... 
(f . g) x = f (g (x))
\end{verbatim}
(und zwar falschherum, würde jeder Algebraiker sagen)

\end{slide}
%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
