Loogilise programmeerimise 1.kontrolltöö konspekt
Näiteid:
mgu(P(a,X), P(Y,b)) = {Y/a, X/b}
mgu(P(X, f(X)), P(f(Y), U)) = {X/f(Y), U/f(f(Y))} mgu(L(g(X,X)), L(g(f(a), f(a)))) = {X/f(a)}
mgu(R(a,b), R(a,b)) = {}
Reegel: Disjunktsioonides, millele rakendatakse üldistatud RR reeglit, tuleb eelnevalt
asendada samanimelised muutujad.
7.1. Listid
Esitavad järjestatud elementide korteeže
List unifitseerub
• ühe muutujaga
List = [a, d, f, [s, f, [],d]]
• Listi erinevaid osi adresseerivate muutujatega, kui on mitte-tühi list
[Head|Tail]
Head (listi pea) - listi ilmutatult viidatavad esimesed elemendid
Tail (listi saba) – ülejäänud listi elemendid
| - eraldussümbol.
1. Termi konverteerimine listiks ja vastupidi ”= ..”.
Tulemuseks list, mille peaks on predikaadi nimi ja sabaks predikaadi argumendid.
Sorteerimispredikaadi defineerimine:
- Ordering := < , kui aritmeetiline järjestamine
- Ordering := aless , kui alfabeetiline järjestamine, kus
7