\begin{slide}{Unterprogramme als Resultate}

\begin{verbatim}
static int x = 3;	
static Func<int,int> s (int y) {
    return z => x + y + z;     
}
static void Main () {
    Func<int,int> p = s(4);
    Console.WriteLine (p(3));  
}
\end{verbatim}

Wenn die von $s(4)$ konstruierte Funktion $p$
aufgerufen wird, dann wird der $s$-Frame benötigt,
steht aber nicht mehr im Stack.

$\Rightarrow$ 
Die (Frames in den) Closures müssen im Heap verwaltet
werden.


\end{slide}
