Next: Über dieses Dokument
M. Sperber, H. Klaeren Wintersemester 1997/98
Compilerbau I
Blatt 1
Abgabe: 23.10.1997
- [5 Punkte] Schreiben Sie eine Funktion
partition_list : ('a -> bool) -> 'a list -> ('a list * 'a list), so daß
partition_list f, l ein Paar
(
,
) liefert, in dem
genau die Elemente x von l enthält mit
f x = true und
die Elemente x mit
f x = false.
- [5 Punkte] Definieren Sie den Datentyp Rational für rationale
Zahlen mit den arithmetischen Operationen Addition, Subtraktion,
Multiplikation und Division. Benutzen Sie eine eindeutige
Darstellung.
- [10 Punkte] Geben Sie eine Funktion length' : 'a list
-> int an, welche die Länge einer Liste berechnet.
length' soll selbst nicht rekursiv sein, darf aber die
fold_...-Funktionen aus dem Modul List der
Standardbibliothek benutzen.
- [10 Punkte] Geben Sie eine Funktion
regexp_accepts_empty : 'a regexp -> bool an, so daß
regexp_accepts_empty r genau dann true
liefert, wenn
zur Sprache des regulären Ausdrucks r
gehört.
Michael Sperber [Mr. Preprocessor]
Wed Oct 15 16:06:31 MST 1997