Kilépés a
prologból: "halt."
beírásával.
Program betöltése: consult/1,
reconsult/1, illetve "[filenev]."
utasítással.
Program futásának
megszakítása: ctrl-c. Ezután h-val
kérhetünk helpet.
Képernyőre
írás: write/1 függvény
segítségével. Ez minden esetben igazat ad vissza
(feltéve, hogy az argumentuma megfelelő), de
mellékhatásként kiírja a képernyőre
az argumentumát. Soremelés:
nl/0 függvény
segítségével.
Egyenlőségjelek:
- "
=" : az egyenlőségjel két
oldalán lévő struktúra egyesítése.
Negáltja: "\=".
- "
=:=": az egyenlőségjel két
oldalán lévő aritmetikai kifejezés
kiértékelése, majd ezek
egyenlőségének ellenőrzése. Negáltja: "=\=".
- "
is" : az egyenlőségjel jobb oldalán
levő aritmetikai kifejezés kiértékelése,
majd ennek a bal oldallal való egyesítése. Mivel
kifejezetten értékadásra használatos, nincs
külön negáltja.
- "==": szigorú
egyezés vizsgálata bármiféle egyesítés
és kiértékelés nélkül. Negáltja
"
\==".
Példák:
?- 3+A = B+4.
?- 3+4 = 4+3.
?- 7 = 3+4.
?- A is 3+4.
?- 7 is 3+4.
?- 3+4 is 3+4.
?- 3+4 =:= 4+3.
?- A =:= 7.
?- 7 == 3+4.
?- 3+A == B+4.
?- A is 7, A == 7.
A második, a harmadik, a hatodik, a nyolcadik, a kilencedik és a tizedik
példa hibát ad vissza. Miért?
Negálás: a
prologban egy predikátum negáltja a predikátum
elé írt \+
segítségével képezhető. Pl:
paros(X):- 0 =:= X mod 2.
paratlan(X):- \+ paros(X).
Beviteli módba
váltás (új szabályok
felvétele): "[user]." utasítás
segítségével. Ezzel megváltozik a prompt
jelezve az eltérő üzemmódot.
Instantiation error: amikor a
kiértékelés során egy változó
értékét kellene felhasználni úgy,
hogy az adott pillanatban nincs még értéke.
Például:
?- A is B+5.
?- A is B+5, B is 3.
Ennek magyarázata a prolog
kiértékelési mechanizmusában keresendő.
Aláhúzás jel:
abban az esetben haszálandó, amikor valamely
szabályban egy függvény valamelyik
argumetumában visszaadott értéket nem
használjuk fel.
Például ha egy lista elejéről akarjuk
leválasztani az első elemt, azaz a fejet:
fej([A|_],A).
Ugyanez a helyzet, ha a lista farkát szeretnénk
kinyerni:
farok([_|B],B).
repeat: a repeat
(mint ahogy "!", a vágás is) mindig igaz
értéket ad vissza. Használatával
kikerülhető a rekurzió, és ezáltal
csökkenthető a memória igény. Tipikus
alkalmazási területe: adatok beolvasása
file-ból. Működése azon alapul, hogy backtracking
során, amikor a repeat egy újabb
kiértékelésére kerülne sor, a prolog
kitörli az aktuális pozíció alatt
található részfát, és elölről
kezdi annak felépítését. Ezt
demonstrálja a következő példa:
?- repeat, write(bla), fail.
Ezt beírva a prolog végtelen ciklusban írja ki a bla
szöveget. Ezzel szemben, ha a repeat-et
elhagyva írjuk be ugyanezt, a prolog a bla
egyszeri kiiratása után leáll.
A repeat bizonyos szempontból úgy is
értelmezhető, mint az
egyszer:- member(E,[1]).
ketszer:- member(E,[1,2]).
haromszor:- member(E,[1,2,3]).
...
(0-aritású) szabályok
általánosítása végtelenre.