Järgnevas vaatleme mõningaid sageli esinevaid nimistute töötlemise ülesandeid. Mmitmed neist on süsteemipredikaatidena juba olemas, kuid nende kasutamisel tekib sageli probleeme, mida ilma vastava mooduli teksti uurimata või vastavat predikaati mitmel viisil katsetamiseta väga raske lahendada - kas member võimaldab ka nimistu elemente genereerida, kas nimistust elementi eemaldades eemaldatakse kõik selle esinemised või ainult esimene/viimane jnejne. "Oma" (ise kirjutatud) predikaatide korral on palju kergem aru saada, kuidas predikaat töötab.
Nimistu pikkuse leidmine - tühja nimistu pikkus on 0 ja pikema nimistu pikkus on keha pikkusest ühe võrra suurem:
Predikaat (sageli süsteemipredikaat) append(Nimistu1, Nimistu2, Nimistu) yhendab nimistud Nimistu1 ja Nimistu2 üheks nimistuks Nimistu:
Arvnimistu elementide summa:
Arvnimistu elementide aritmeetiline keskmine:
Arvnimistu (mittetühja) elementide seast suurima leidmisel on võib kasutada Prologi süsteemifunktsiooni max(X, Y):
Nimistu minimaalse (või maksimaalse) elemendi võib leida ka ilma süsteemifunktsiooni kasutamata:
Tingimust Tingimus täitvate elementide Term (Term võib olla muutuja, lõplik nimistu jne) kogumiseks nimistuks Nimistu on olemas süsteemipredikaat findall(Term, Tingimus, Nimistu). Kui pojad on kirjeldatud lausetega poeg_on(Isa, Poeg), siis Isa-e poegade arvu võib arvutada järgmiselt:
Koosta predikaat meililisti osavõtjatele
signatuuride moodustamiseks.
Signatuur (aatom) moodustatakse osavõtja nimest (aatom), kasutades
sümboleid
nimistust [' ', '.', '/', '<', '>', '?',
'!', ':', '\', '|', '{', '}', '-', '=', '_', '+', '@', '#', '$', '%', '^', '&',
'*', '(', ')', '~','`'] (fikseeritud) ja kolme
operaatorit; kõigi operaatorite argumentideks on nimi ja mingi eespoolloetletud
sümbolitest koostatud aatom; operaatorid on :
prefiks - lisab sümbolite aatomi nime ette;
suffiks - lisab sümbolite aatomi nime lõppu (samas järjekorras);
ymber - lisab sümbolite aatomi
nime ette ja (tagurpidi järjekorras)
nime lõppu.
Operaatorid antakse nimistuna, mille iga
element on kahekohaline nimistu [operaator,
sümbolid] ja nad tuleb sooritada selles järjekorras nagu nad
on nimistus esitatud; näiteks kui nimi on 'Juku' ja operaatorite nimistu [[[ymber,'-='],
[suffiks, '-( ('], [prefiks,'(-']] , siis tulemuseks tuleb (samm sammult) 'Juku' '-=Juku=-' '-=Juku=--(
(' '(--=Juku=-) )'.
Koosta predikaat signatuur(Nimi, Operaatorid,Signatuur),
mis moodustab signatuuri Signatuur . Operaatorite
nimistu võib olla kuitahes pikk (võib ka tühi olla), kuid
predikaat peaks lõpetama töö, kui signatuuri pikkus tuleks
järgneval sammul
suurem kui 20; predikaat peaks ka kontrollima, et operaatorite argumendid on
koostatud ainult lubatud (ülalesitatud nimistu) sümbolitest.