SYNOPSIS
        closure unbound_lambda(mixed *arg, mixed code);

BESCHREIBUNG
        Erzeugt eine Lambda-Closure, die nicht an ein Objekt gebunden ist,
        entsprechend einer Lambda-Funktion in LISP.

        Die Closure kann keine Referenz zu globalen Variablen enthalten.
        Lfun-Closures werden unveraendert in die Closure eingebunden, da es
        kein Ursprungsobjekt fuer diese Closure gibt.

        Bevor die Closure aufgerufen werden kann, muss sie an ein Objekt
        gebunden werden. Normale Objekte koennen Closures nur an sich selbst
        binden, das Binden an andere Objekte erzeugt eine Schutzverletzung.

        Der Punkt ist, dass previous_object() fuer Aufrufe innerhalb der
        Closure auf das Objekt zeigt, das bind_lambda() aufgerufen hat, und
        alle objekt- oder uid-basierten Sicherheitschecks beziehen sich
        auf jenes Objekt.

        Das erste Argument <*arg> ist ein Array, das die Argumente (Symbole)
        enthaelt, die an die Closure uebergeben werden, wenn diese mit
        funcall() oder apply() ausgewertet wird. Das zweite Argument <code>
        enthaelt den Code der Closure.

SIEHE AUCH
        closures(LPC), lambda(E), apply(E), funcall(E), bind_lambda(E)
