\begin{slide}{Rekursion?}

Das geht nicht, und soll auch nicht gehen:
\begin{verbatim}
let { x = 1 + x } in x
\end{verbatim}
aber das hätten wir doch gern:
\begin{verbatim}
let { f = \ x -> if x > 0 
                 then x * f (x -1) else 1 
    } in  f 5
\end{verbatim}

Eine Lösung: Fixpunkt-Kombinator
\begin{verbatim}
let { f = fix $ \ g -> 
          \ x -> if x > 0 
                 then x * g (x -1) else 1 
    } in  f 5
\end{verbatim}
mit Typ \verb|fix :: (a -> a) -> a|

für \verb|a = (Val -> Val)|

\end{slide}
