![]() |
![]() |
![]() |
tytar_on(uranos,rhea).
tytar_on(kronos,hera).
poeg_on(uranos,okeanos).
poeg_on(uranos,iapetos).
poeg_on(uranos,kronos).
poeg_on(kronos,zeus).
poeg_on(iapetos,atlas).
Fakt -> suhtenimi(argument{ , argument}).
-- Süntaksikirjeldustes loogeliste sulgude vahel olev osa võib
korduda 0,1,2,... korda!
suhtenimi -> SUURTÄHTEDETA_STRING
argument -> SUURTÄHTEDETA_STRING
-- AMZI-Prolog ei salli "täppidega tähti", sellepärast on kõik täppidega tähed asendatud vastava täppideta tähega!
pojapoeg(Vanaisa,Pojapoeg) :-
poeg_on(Vanaisa,Isa) ja poeg_on(Isa,Pojapoeg).
-- Reegli lugemisel asenda sümbol ":-" sõnadega
"siis kui "
-- Sõna "ja" asemel kasutatakse tavaliselt koma ","
-- Sõna "ja" kasutamiseks (AMZI-Prologis) tuleb enne laadida
kas moodul eesti.pro või eesti.plm
(eelmise kompileeritud kuju) käsuga consult('eesti.pro')
või consult('eesti.plm')
-- Predikaadi nime ja järgneva sulu vahel ei või kunagi
olla tühikut, s.t. poeg_on (Vanaisa,Isa)
tekitab juba laadimisel vea!
Reegel -> Suhe :- Suhe{ , Suhe}.
-- Sõnad "ja" ja koma ","
reegli paremal pool on samaväärsed!
Suhe -> suhtenimi(argument_või_muutuja{ ,
argument_või_muutuja}).
argument_või_muutuja -> STRING| _STRING
-- Püstkriips tähistab süntaksikirjeldustes valikut,
s.t. argument või muutuja võib olla kas suvaline string (võib
alata suurtähega) või allkriipsuga "_" algav string
? poeg_on(uranos,X).
X=okeanos
X=iapetos
X=kronos
? pojapoeg(uranos,X).
X=atlas
X=zeus
? tytar_on(X, hera).
X=kronos
Küsimused, probleemid: