\begin{slide}{CPS für Resultat-Tupel}

wie modelliert man Funktion
mit mehreren Rückgabewerten?
\begin{itemize}
\item benutze Datentyp Tupel (Paar):
\begin{verbatim}
f : A -> (B, C)
\end{verbatim}
\item benutze Continuation:
\begin{verbatim}
f/cps : A -> (B -> C -> D) -> D
\end{verbatim}
\end{itemize}

\end{slide}

\begin{slide}{CPS/Tupel-Beispiel}
erweiterter Euklidischer Algorithmus:
\begin{verbatim}
prop_egcd x y = 
    let (p,q) = egcd x y
    in  (p*x + q*y) == gcd x y

egcd :: Integer -> Integer 
     -> ( Integer, Integer )
egcd x y = if y == 0 then ???
           else let (d,m) = divMod x y
                    (p,q) = egcd y m
                in  ???
\end{verbatim}
vervollständige, übersetze in CPS
\end{slide}
