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.