19500 V Algorithmen und Programmieren I
Wintersemester 2001/2002

Rojas
Gloye


Ü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

  1. Definieren Sie positive und negative Zahlen durch Paare von Zahlen .
  2. Definieren Sie die Addition und Subtraktion für positive und negative Zahlen.

Aufgabe 3 (4 Punkte) l-Kalkül

  1. Definieren eine Datenstruktur um eine Liste von Zahlen zu repräsentieren.
  2. 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

  1. Definieren Sie eine Funktion showExpr::Expr->String, die einen Ausdruck in die Lambda-Schreibweise (mit "/" für "l") übersetzt.
  2. Definieren Sie eine Funktion isLambda::Expr->Bool, die prüft ob ein Ausdruck eine Lambda-Funktion ist.
  3. Definieren Sie eine Funktion collectNames, die alle Variablennamen eines Ausdrucks genau einmal in eine Liste speichert.


letzte Änderung am 15. November 2001 (Alexander Gloye)