From Wikipedia, the free encyclopedia
Prolog on loogika programmeerimiseks mõeldud deklaratiivne programmeerimiskeel, mis põhineb predikaatloogikal.
See artikkel ootab keeletoimetamist. |
Prolog | |
---|---|
Paradigma | loogiline |
Väljalaskeaeg | 1972 |
Looja | Alain Colmerauer |
Implementatsioonid | BProlog, Ciao Prolog, ECLiPSe, GNU Prolog, Logic Programming Associates, Poplog Prolog, P#, Quintus, SICStus, Strawberry, SWI-Prolog, tuProlog, YAP-Prolog |
Dialektid | ISO Prolog, Edinburgh Prolog |
Mõjutanud keeli | Visual Prolog, Mercury, Oz, Erlang, Strand, KL0, KL1, Datalog |
Prolog'i programmid kirjeldavad relatsioone, mis on kirjeldatud eelduslausete põhjal. Prolog'is on 3 tüüpi lauseid.
Horni lausete tüübid:
Horni 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"
Horni 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"
Horni 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)?"
Eitus ehk negatsioon (en: negation) p not p 1) false true 2) true false *) *) Konjunktsioon ehk "loogiline ja" (en: conjunction) p q p and q 1) false false false 2) false true false 3) true false false 4) true true true |
Disjunktsioon ehk "loogiline või" (en: disjunction) p q p or q 1) false false false 2) false true true 3) true false true 4) true true true Implikatsioon ehk "kui ... siis" (en: implication) p q p -> q 1) false false true 2) false true true 3) true false false 4) true true true |
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
Marju 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').
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.