Для жаворонок я начал изучать Prolog через http://www.learnprolognow.org/. Мое оправдание в том, что я только что начал.
Я не уверен, как должно выполняться следующее (простое) упражнение для работы, как ожидалось. http://cs.union.edu/~striegnk/learn-prolog-now/html/node13.html#sec.l1.exercises
Я вижу, что Gnu Prolog 1.4 (http://www.gprolog.org/) недовольна тем, что второй предикат для мастера \1 не находится рядом с первым. Я могу повторно заказать программу, чтобы она работала, но затем я получаю код, который для моего новичка Prolog выглядит менее понятным, чем тот, который представлен ниже.
Я пропустил что-то очевидное?
wiz.pl
wizard(ron).
hasWand(harry).
quidditchPlayer(harry).
wizard(X) :- hasBroom(X),hasWand(X).
hasBroom(X) :- quidditchPlayer(X).
обратитесь к wiz.pl
| ?- [wiz].
compiling D:/wiz.pl for byte code...
D:/wiz.pl:5: warning: discontiguous predicate wizard/1 - clause ignored
D:/wiz.pl compiled, 5 lines read - 632 bytes written, 24 ms