Prolog-Grundzüge 3: Listen

Juli 20, 2009 at 5:12 nachmittags 1 Kommentar


Eine Liste schreibt man in Prolog kommasepariert und umgeben von eckigen Klammern auf: [a,b,c] definiert eine Liste aus dem Symbolen a, b und c. Mit dem Pipezeichen | kann man eine Liste zerlegen – in das erste Element und den Rest. Man kann z.B. schreiben:

liste(EineListe, H, T) :- [H|T] = EineListe.

H und T sind in Prolog übliche Variablennamen, wenn es um das Aufsplitten von Listen geht. H steht für “Head” und T für “Tail”. Die Regel “liste” können wir vielfälig verwenden:

?- liste([a,b,c], H, T).

liefert “H=a, T=[b,c]“.

Wir können so auch feststellen, wie eine Liste aufgesplittet wird, die nur ein Element hat

?- liste([a], H, T).

liefert “H=a, T=[]“. Eine einelementige Liste besteht also aus dem Element und der leeren Liste.

Und wie sieht es mit der leeren Liste aus?

?- liste([], H, T).

liefert “false”. Die leere Liste lässt sich nicht weiter aufsplitten. Damit lässt sich die Regel nicht erfolgreich anwenden und das quittiert das Prolog-System mit “false”.

Wie wir schon im ersten Blogeintrag gesehen haben, kann man viele Regeln auch umgekehrt anwenden. Mit der Regel “liste” können wir nicht nur Listen zerlegen, wir können auch Listen damit zusammenbauen.

?- liste(L, a, [b,c]).

liefert “L=[a,b,c]“.

About these ads

Entry filed under: 1. Tags: .

Prolog-Grundzüge 2: Das Prolog-System Prolog-Grundzüge 4: Pattern Matching

1 Kommentar Add your own

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Verbinde mit %s

Trackback this post  |  Subscribe to the comments via RSS Feed



Follow

Bekomme jeden neuen Artikel in deinen Posteingang.

Schließe dich 172 Followern an

%d Bloggern gefällt das: