Schreibbefehle AtomModifizierung Steuerung der Auswertung

Schreibbefehle
write(+Term) ­ schreibt Term auf die Standardausgabe (normalerweise Bildschirm)
writeq(+Term) ­ schreibt Term schön auf die Standardausgabe
portray_clause(+Term) ­ schreibt Term noch schöner auf die Standardausgabe
tell(+SrdDst) ­ macht Datei SrdDst zur Standardausgabe, d.h. die write und writeq wird dorthin umgeleitet
told ­ hebt die Umleitung von tell/1 wieder auf
tab(Anzahl) ­ schreibt Anzahl Leerzeichen
Atom­Modifizierung
concat(A,B,C) ­ konkateniert Atome A+B=C, Beispiel: concat(X,en,gehen) => X = geh
atom_concat(A,B,C) ­ wie concat
concat_atom(Liste, Atom) ­ generiert ein Atom aus einer Liste, Beispiel : concat_atom([g,e,h,e,n],X) => X = gehen
Prädikat =.. [Funktor|Argumente] ­ konvertiert das Prädikat in eine Liste, wobei der Funktor das Kopfelement der Liste ist und die Argumente die weiteren Elemente.
Beispiel: append(a,b,X) =.. [Funktor|Argumente] => Funktor = append, Argumente = [a,b,X]
Steuerung der Auswertung
var(X) ­ liefert true, falls X eine Variable ist
fail ­ lässt das Prädikat scheitern
true ­ lässt das Prädikat gelingen
Bedingung ­> DannFall; SonstFall ­ lässt sich Bedingung beweisen, beweise DannFall, andernfalls beweise SonstFall
call(Goal) ­ ruft Goal so in der Datei auf als ob auf ?­ Prompt geschrieben
assert(Prädikat) ­ fügt auf dem ?­ Prompt aufgerufen Prädikat zur Datenbank hinzu (so als wenn es in Datei geschrieben worden wäre und mittels consult/1 geladen)
setof ­ siehe Folie 221
findall ­ siehe Folie 222
Listen
sort(+List,­Sortiert) ­ sortiert die Liste, dabei werden Duplikate entfernt
msort(+Liste,­Sortiert) ­ sortiert Liste ohne Duplikate zu entfernen
length(Liste,Laenge) ­ liefert die Länge der Liste in Laenge
append(A,B,C) ­ konkateniert Liste A mit B und speichert das Ergebnis in C
reverse(A,B) ­ dreht Liste A um und speichert das Ergebnis in B
Module
:­ module("name",["exportierte Prädikate"]) muss am Kopf eines Moduls stehen
:­ use_module(Moduldateiname) ­ lädt das Modul, dass sich in Moduldateiname befindet