Prolog
Prolog on loogika programmeerimiseks mõeldud deklaratiivne programmeerimiskeel, mis põhineb predikaatloogikal. Üldine loogika
Horni reeglidProlog'i programmid kirjeldavad relatsioone, mis on kirjeldatud eelduslausete põhjal. Prolog'is on 3 tüüpi lauseid. Horni lausete tüübid:
FaktidHorni lause, millel puudub keha ja omab vaid tõeväärtust – tõene. Kirjeldavad sidet üldisemat subjektilt vähem üldisemale. Ehk, kui on tõsi üldisem on tõsi ka vähem üldisem. Näiteks: sajab-> külm and märg. Sama mis: sajab:- külm & märg. Ehk "Kui on külm ja on märg, siis sajab." Näiteks: ema('Marju', 'Margus'). Ehk "Marju on Marguse ema" ReeglidHorni lause, mis omab keha ja päist. Kirjeldavad sidet subjekti ja predikaadi vahel. Ehk kui päises esitatud tingimused on tõesed, on tõene ka keha. Näiteks: ema('Marju'). Sama mis: ema('Marju') :- true. Ehk "Marju on ema" PäringudHorni lause, millel on ainult keha. Ehk küsimus(ed), millele otsitakse järeldust. (Loogikas on järeldus=tõestus) Näiteks: ?- ema('Marju'). Yes Ehk "Kas Marju on ema?" ?- ema(X). X = Marju Ehk "Kes on ema(d)?" Operaatorid ja tõeväärtustablid
NB: Kui mõnes teises programmeerimiskeeles saab eitava argumendi eitamisest argumendi enda, siis ei ole nii loogikas ! Ehk nt: (kõik) inimesed = (kõik) mitte mitte inimesed = väär Sõnaliselt öeldud: kõik inimesed on sama, mis ei ole see, kes ei ole nagu ükski inimene – Ei ole tõsi Liitlausete formaliseerimineMarju on Margus'e ema: ?- ema('Marju', 'Margus'). Marju on kellegi ema: ?- ema('Marju', X). Marju on Margus'e ema ja Maie tütar: ?- ema('Marju', 'Margus'), ema('Maie', 'Marju'). Vaata ka |