28.11.2014 Aufrufe

Allgemeine Hinweise 1 Prolog Aussagenlogik und Resolution

Allgemeine Hinweise 1 Prolog Aussagenlogik und Resolution

Allgemeine Hinweise 1 Prolog Aussagenlogik und Resolution

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Listen, Listen, Listen<br />

Aufgabe 1<br />

Schreiben Sie ein Programm, das eine Liste de-dupliziert, also mehrfach enthaltene Elemente löscht, also<br />

[a, b, a, c] wird zu [a, b, c] oder [b, a, c].<br />

Aufgabe 2<br />

Schreiben Sie ein Programm, das jedes Element einer Liste verdoppelt, also [a, b, c] wird zu [a, a, b, b, c, c].<br />

Aufgabe 3<br />

Es gibt verschiedene Möglichkeiten, Listen umzudrehen. Hier sind zwei mögliche Programme:<br />

% reverse Version a<br />

reverse([], []).<br />

reverse([X|Xs], Zs) :- reverse(Xs, Ys), append(Ys, [X], Zs).<br />

% reverse Version b<br />

reverse([], []).<br />

reverse(Xs, Ys) :- reverse(Xs, [], Ys).<br />

reverse([X|Xs], Acc, Ys) :- reverse(Xs, [X|Acc], Ys).<br />

reverse([], Ys, Ys).<br />

• Welche der beiden Versionen gefällt Ihnen besser? Warum?<br />

• Zeichnen Sie den Proof-Tree für beide Programme, wenn der folgende Ausdruck ausgewertet wird:<br />

reverse([a, b, c], [c, b, a]).<br />

• Wie ist die Laufzeit der beiden Programme?<br />

Inspektion von Strukturen<br />

Aufgabe 1<br />

Was ergeben die folgenden Ausdrücke? Und warum?<br />

?- compo<strong>und</strong>(a).<br />

?- atom(a).<br />

?- compo<strong>und</strong>(X).<br />

?- atom(X).<br />

?- compo<strong>und</strong>(a(b)).<br />

?- atom(a(b)).<br />

?- compo<strong>und</strong>([]).<br />

?- atom([]).<br />

?- compo<strong>und</strong>([[]]).<br />

?- atom([[]]).<br />

Aufgabe 2<br />

Was ergeben die folgenden Ausdrücke? Und warum?<br />

?- functor(a, F, A).<br />

?- functor(father(michael, tyler), F, A).

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!