blatt4-SS00

blatt4-SS00
Marco Thomas
Institut für Informatik
15.07.2000
Übungen zur Vorlesung
Logische und funktionale Programmierung
Blatt 4
Abgabe: keine
Aufgabe A:
Welches Ergebnis liefert ML zu den folgenden Deklarationen, wenn für x, y, z keine intialisierende Bindung
vorliegt?
a) val x=1; local val x=2 in val y=x+1 end; val z=x+1;
b) let val x=1 in let val x=2 and y=x in x+y end end;
c) Beschreiben Sie die Unterschiede des Einsatzes von local verglichen mit let bei der Verwendung lokaler
Deklarationen.
Aufgabe B:
a) Definieren Sie Funktionen umfang und flaeche eines Kreises (verwenden Sie pi =3.14 per lokaler
Deklaration)
b) Eine „perfekte Zahl“ ist eine natürliche Zahl n, die gleich der Summe ihrer Faktoren ist (inkl. 1, aber
ohne n). Beispielsweise ist 6 eine „perfekte Zahl“, da 6=3+2+1. Definieren Sie ein Prädikat, das eine
Zahl auf „Perfektheit“ prüft.
c) Definieren Sie eine Funktion palindrom, die überprüft, ob ein String ein Palindrom darstellt (Tip:
verwenden Sie implode und explode).
Aufgabe C:
Vervollständigen Sie die folgende Deklaration des abstrakten Datentyps menge.
abstype 'a menge = menge of 'a list
with
val leer: 'a menge = ...
fun element (e: 'a): 'a menge = menge [e];
fun vereinigung(s1: 'a menge, s2: 'a menge): 'a menge = ...
fun enthalten(e: 'a, s: 'a menge): bool = ...
enthalten(e, menge (h::t)) = (e=h) orelse enthalten(e, menge t)
fun schnitt(s1: 'a menge, s2: 'a menge): 'a menge = ...
end;
Aufgabe D:
Implementieren Sie zwei verschiedene Sortierverfahren in ML.
Aufgabe E:
Übertragen Sie die Definition der Generation einer Liste auf lazy lists.
Aufgabe F:
Definieren Sie in ML zu den in der Vorlesung vorgestellten Ordnungsrelationen natorder, intorder und
natpairorder einen Funktor, der als Parameter einen Wert des Typs order bekommt und eine Struktur liefert,
die eine angepasste Gleichheitsfunktion eq auf diesem Typ definiert.
Aufgabe G:
Definieren Sie in ML einen polymorphen Typ Stack als Struktur mit den üblichen Operationen NewStack,
IsEmpty, Push, Pop und Top.
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement