\begin{slide}{foldr, foldl, reduce}

  \begin{itemize}\itemsep 2pt \parskip 5pt
  \item Rechnung beginnt am rechten Ende,
    entspricht dem natürlichen Rekursionsschema:
\begin{verbatim}
foldr :: (a -> b -> b) -> b -> [a] -> b
foldr (-) 0 [1,2,3] = 2
\end{verbatim}
    \item Rechnung beginnt am linken Ende:
\begin{verbatim}
foldl :: (b -> a -> b) -> b -> [a] -> b
foldl (-) 0 [1,2,3] = -6
\end{verbatim}
    \item für assoziative Operation,
      beliebige Klammerung:
\begin{verbatim}
reduce :: (a -> a -> a) -> [a] -> a
foldb :: (a -> b) 
      -> (b -> b -> b) -> [a] -> b
\end{verbatim}
  
  \end{itemize}


\end{slide}
