Dokumentation zu: lambda-terme(S)

HR Image


SYNTAX:
    mixed funcall( closure, paramlist )
    apply()
    bound_closure()
    unbound_closure()

----------------------------------------------------------------------

SYNTAX:
    mixed funcall( closure, paramlist )

FUNKTION:
    Werte den Lambdaterm aus. Binde die freien Variablen des Lambdaterms
    an die aktuellen Parameter.

BEISPIEL:
    x = funcall( inc, 4 )

----------------------------------------------------------------------

SYNTAX:
    closure lambda( arglist, funktion )

PARAMETER:
    Dabei ist <funktion> eine Funktion in Lisp/Scheme-Syntax, wobei
    freie Variablen, in dem Array <arglist> deklariert werden.

    Wichtig: Variablen und Operatoren muessen gequotet werden, damit
    der Compiler sie nicht auswertet.

FUNKTION:
    Kreieren eines neuen Lambdaausdrucks. Wird der Ausdruck ausgewertet,
    bekommt der Ausdruck als this_object() das Objekt, in dem er
    erschaffen wurde, d.h. in dem dieser Funktionsaufruf steht.

BEISPIEL:

    closure inc;
    inc = lambda( ({ 'x }), ({ #'+, 'x, 1 }) );

----------------------------------------------------------------------

OFFENE FRAGEN:
    * Wie bestimmt man euid und aehnliches von Lambda-Termen ?
    * Wie baut man rekursive Lambdaterme ?
    * Werden die Ausdruecke lazy ausgewertet ?
    * Was passiert bei Fehlern in Lambda-Termen ?
    * Was passiert mit Ausdruecken der Art (lambda x.xx)(lambda x.xx) ?


Start » Magierhandbuch » Docu » Sfun » Lambda-terme Letzte Generierung: 01.05.2021, 16:59
Valid HTML 4.01!