BuK/IIm10/BuK-Übung09 G1
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
= <math>\beta</math>-Konversion = == Aufgabenstellung == Reduzieren Sie den <math>\lambda</math>-Ausdruck <math>(\lambda x. x x)((\lambda z. z y) x)</math> durch mehrfache Anwendung der <math>\beta</math>-Regel. Verfolgen Sie alle möglichen Anwendungsstellen (sog. <math>\beta</math>-Redexe). == Lösung == = Scheme = == Aufgabenstellung == Evaluieren Sie den folgenden Scheme-Ausdruck durch Handrechnung. <math>((lambda (x) (* x (+ 2 x)))((lambda (x)(* x x)) 3))</math> Überprüfen Sie das Ergebnis anschließend am Rechner. == Lösung == = Umbenennung ungebundener Variablen = == Aufgabenstellung == Evaluieren Sie den folgenden Ausdruck: <math>((\lambda x. (\lambda y. (x y)))(y w))</math>. Hinweis: Falsch wäre <math>(\lambda y. ((y w) y))</math>. == Lösung == = <math>\alpha</math>-Konversion = == Aufgabenstellung == Kann die gebundene Variable <math>x</math> in <math>(\lambda x. (+ x 3))</math> beliebig umbenannt werden? Geben Sie zwei Antworten: eine konkrete auf den Ausdruck bezogene und eine verallgemeinerte. == Lösung == = Curryfication = == Aufgabenstellung == Curryfizieren Sie die Funktion <math>f</math>, mit <math>f(x, y, z) = x + y + z</math>, zweimal. Geben Sie die Lösung in mathematischer Notation an und schreiben Sie außerdem eine entsprechende Scheme-Prozedur. == Lösung ==