\begin{slide}{letrec}

Beispiel (aus: D. Hofstadter, GEB)
\begin{verbatim}
letrec { f = \ x -> if x == 0 then 1 
                    else x - g(f(x-1))
       , g = \ x -> if x == 0 then 0 
                    else x - f(g(x-1))
} in f 15
\end{verbatim}
Bastelaufgabe: für welche $x$ gilt $f(x)\neq g(x)$?

AST-Knoten:
\verb+data Exp = ... | LetRec [(Name, Exp)] Exp+


weitere Beispiele:
\begin{verbatim}
letrec { x = 3 + 4 , y = x * x } in x - y
letrec { f = \ x -> .. f (x-1) } in f 3
\end{verbatim}

\end{slide}

