Noja ma siin siis maadlen jätkuvalt oma programmeerimiskeeltega...Kohati kammib ikka väga ära, näiteks üritasin konkreetselt tund aega aru saada, miks järgnev Prologi predikaat töötab.
on_ahvid( [ ]).
on_ahvid( [ H | T ] ) :-
member( H, [ ahvike,ahvipapa, ahvimamma, mankiboi ]),
on_ahvid(T).
on_ahvid( [ H | T ] ) :-
member( H, [ ahvike,ahvipapa, ahvimamma, mankiboi ]),
on_ahvid(T).
See ei ole loogiline! Kogu see keel on üles ehitatud loogikavalemitele, käsud pole ette antud vaid tuleb ise defineerida; kust kohast ta võtab siin arusaamise, et
?- on_ahvid([ahvike,ahvipapa])
true
?- on_ahvid([papagoi, elevant])
false
Õpikunäide oli numbritega, enne aru ei saanud kui käsud eestikeelsete vastetega ja numbrid ahvidega asendasin. Sest siis selgus: member, mis kontrollib kas antud entiteet on teisel positsioonil asuvas listis, on üks neid väheseid eeldefineeritud käske, mis on Prologi sisse ehitatud, ja sellepärast ta töötab - mitte et õpik seda poole sõnagagi mainiks. Faaaaaaaaaa....