Izrazi
Iz E-študij, proste zakladnice študentskega znanja
Delitev izrazov v prologu:
- literal,cilj
- stavek
- dejstvo, pravilo, ukaz (vprašanje)
- predikat, relacija = procedura
- Relacija je definicija predikata. Ko povemo ime relacije in koliko ima argumentov, smo določili predikat.
- mestnost, argumenti
- pomembno je število argumentov, če je število drugačno imamo drug predikat
Vsebina |
Atomi
Imena se začnejo z malo črko. Presledki ločujejo atome.
anna nil x_25 x25AB janez_hocevar
V sintaksi lahko uporabljamo nealfanumerične znake, ki so vidni. Nekateri atomi imajo poseben pomen.
<<--->> <<=== ... .:. ::= <<---::: :- + []
Atome lahko sestavljamo tako, da uporabljamo enojni narekovaj zgoraj. Vse kar je med narekovajema je atom.
'Anna' 'X & Y = Z' 'Janez Hocevar'
Spremenljivke
Imena se začnejo z veliko črko. Presledki ločujejo spremenljivke.
X Rezultat O1 O_1 _x25 _23 _23_bla Ime_Priimek
Anonimna spremenljivka je spremenljivka, ki nas ne zanima.
_
Strukture
Za funktorjem pred ( ne sme biti presledek.
funktor(argument1, argument2, ... , argumentN)
oseba(ime(Ime,Priimek),Naslov,rojstvo(Kraj_rojstva,datum(Dan,Mesec,Leto)))
Operatorji
- enomestni (z 1 argumentom)
- prefiksni (operator pred argumentom)
- postfiksni (operator po argumentu))
- dvomestni (z 2 argumentoma, npr. +)
- asociativnost (če je več operatorjev, kateri veže močneje)
- leva (pri npr. + najprej upoštevamo levi operator, torej ima levo asociativnost - drevo se gradi v levo)
- desna
- prioriteta (če sta dva različna operatorja prioriteta pove kateri veže močneje)
Prefiksni zapis
+(+(*(123,X),/(a,Y)),/(1212,+(12,3)))
Infiksni zapis
123*X+a/Y+1212/(12+3)
Zgornja zapisa imata enak pomen.