Я застрял в течение некоторого времени по этому вопросу, моя программа Пролог имеет следующую строку в пределах своих определений оператора:Невозможно использовать определенный пользователем оператор в Прологе
:- op(100, xfx, [has,gives,'does not',eats,lays,isa]).
, а затем этот факт:
fact :: X isa animal :-
member(X, [cheetah,tiger,giraffe,zebra,ostrich,penguin, albatross]).
Когда я пытаюсь использовать оператора, он говорит, что он не определен, и я просто не понимаю, почему.
?- peter isa tiger.
ERROR: [Thread pdt_console_client_0_Default Process] toplevel: Undefined
procedure: (isa)/2 (DWIM could not correct goal)
Извините, если это что-то глупое (что, вероятно, есть), но я новичок в Prolog. Буду признателен за любую оказанную помощь.
Он работает точно так, как ожидалось, если вы просто удалите 'fact ::'. Чтобы определить правило в Prolog, используйте 'Head: - Body.', например:' X isa animal: - member (...). '. – mat