next up previous
Next: Über dieses Dokument

M. Sperber, H. Klaeren Wintersemester 1997/98


Compilerbau I


Blatt 1

Abgabe: 23.10.1997

  1. [5 Punkte] Schreiben Sie eine Funktion partition_list : ('a -> bool) -> 'a list -> ('a list * 'a list), so daß partition_list f, l ein Paar ( tex2html_wrap_inline40 , tex2html_wrap_inline42 ) liefert, in dem tex2html_wrap_inline40 genau die Elemente x von l enthält mit f x = true und tex2html_wrap_inline42 die Elemente x mit f x = false.
  2. [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.
  3. [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.
  4. [10 Punkte] Geben Sie eine Funktion regexp_accepts_empty : 'a regexp -> bool an, so daß regexp_accepts_empty r genau dann true liefert, wenn tex2html_wrap_inline60 zur Sprache des regulären Ausdrucks r gehört.




Michael Sperber [Mr. Preprocessor]
Wed Oct 15 16:06:31 MST 1997