SYNOPSIS
        closure symbol_function(symbol arg)
        closure symbol_function(string arg)
        closure symbol_function(string arg, object|string obj)

BESCHREIBUNG
        Erzeugt eine Lfun-, Efun- oder Operator-Closure aus <arg>, wobei
        <arg> entweder ein string oder ein symbol sein muss. Fuer
        Lfun-Closures gibt <obj> an, zu welchem Objekt die Lfun gehoert,
        entweder angegeben durch das Objekt selbst (bzw. einen pointer
        darauf) oder durch den Objektnamen als String. Wenn ein String
        angegeben wird, wird das Objekt beim Aufruf geladen.

        Wenn die Closure fuer eine Lfun in einem anderen als dem momentanen
        Objekt erzeugt wird, ergibt dies eine "alien lfun closure". Solche
        Closures sind an das Objekt gebunden, das symbol_function()
        aufgerufen hat (dieses Objekt wird von to_object() geliefert),
        obwohl der eigentliche Code in einem anderen Objekt steht (das mit
        get_type_info() gefunden werden kann).

        Als "private" deklarierte Funktionen koennen auf diese Weise nie
        aufgerufen werden, "static" und "protected" deklarierte Lfuns nur
        dann, wenn <obj> das gueltige Objekt ist.

BEISPIELE
        symbol_function("efun::users");
            --> ergibt: #'users
        symbol_function("QueryProp", other_obj);
            --> ergibt: other_obj->QueryProp()

GESCHICHTE
        Eingefuehrt in 3.2@70.

SIEHE AUCH
        lambda(E), quote(E)
