19500 V Algorithmen und Programmieren I Wintersemester 2001/2002
|
|
Übung 5
15. November 2001 (Abgabe 26. November 2001)
Aufgabe 1 (3 Punkte) l-Kalkül
Definieren Sie die Funktionen "kleiner als" und "größer als" für zwei Zahlen.
Aufgabe 2 (8 Punkte) l-Kalkül
Definieren Sie positive und negative Zahlen durch Paare von Zahlen .
Definieren Sie die Addition und Subtraktion für positive und negative Zahlen.
Aufgabe 3 (4 Punkte) l-Kalkül
Definieren eine Datenstruktur um eine Liste von Zahlen zu repräsentieren.
Definieren Sie eine Funktion , die das zweite Element einer Liste extrahiert,
unter der Annahme, daß die Liste mindestens zwei Elemente enthält.
Aufgabe 4 (5 Punkte) Haskell
Definieren Sie eine Funktion showExpr::Expr->String, die einen
Ausdruck in die Lambda-Schreibweise (mit "/" für "l") übersetzt.
Definieren Sie eine Funktion isLambda::Expr->Bool, die prüft
ob ein Ausdruck eine Lambda-Funktion ist.
Definieren Sie eine Funktion collectNames, die
alle Variablennamen eines Ausdrucks genau einmal in eine Liste speichert.
letzte Änderung am 15. November 2001 (Alexander Gloye)