Nimistu on kandiliste sulgude [ ] vahel esitatud loetelu nimistu elementidest, mis eraldatakse üksteisest komaga, näiteks [demeter, hades, hestia, poseidon, zeus, hera] on nimistu kõigist Kronose lastest. Kuna nimistu element võib taas olla nimistu, saab nimistute abil realiseerida igasuguseid hierarhilisi andmestruktuure.
Nimistu esitamisel kujul [Pea | Keha] annab Prolog muutuja Pea väärtuseks nimistu esimese elemendi, muutuja Keha väärtuseks tuleb nimistu, mis koosneb esialgse nimistu kõigist ülejäänud elementidest.
Olgu näiteks Kronose lapsed kirjeldatud faktiga:
Kronose esimese lapse nime ja kõigi ülejäänud laste nimede nimistu saaksime päringuga:
Prologis on süsteemipredikaadid ka nimistute moodustamiseks, näiteks lausetest poeg_on(Isa,Poeg) uue predikaadi pojad(Isa, Pojad) (Pojad on nimistu kõigist Isa poegadest) moodustamiseks. Selleks võib kasutada Prologi süsteemipredikaati findall(Muutuja, Tingimus, Nimistu) abil; siin Muutuja on muutuja, mille predikaadi Tingimus rahuldavad väärtused korjatakse kokku nimistusse Pojad, seega kõigi Kronose poegade nimistu Pojad saab lausega
Predikaadil findall(Muutuja, Tingimus, Nimistu) on mitu erikuju, mis võimaldavad moodustada kordusteta, järjestatud jne nimistuid, vt Prolog-i Help-faili. Muutuja võib olla ka mitut muutujat sisaldav nimistu ja Tingimus võib olla koostatud mitmest predikaadist, mis on loogikaoperaatorite ja (,), või(;), eitus (not) abil üheks loogiliseks tingimuseks ühendatud.
Kui näiteks programmis on laused isade-emade kohta kujul