我正在使用以下知识库:
house_elf(dobby).
witch(hermione).
witch('McGonagall').
witch(rita_skeeter).
magic(X):-house_elf(X).
magic(X):-wizard(X).
magic(X):-witch(X).
并且练习说:满足以下哪些查询?在相关的地方,给出导致成功的所有变量实例化。这就是我回答他们的方式:
1.?-magic(house_elf). answer no
2.?-wizard(harry). answer no
3.?-magic(wizard). answer no
4.?-magic('McGonagall').answer yes, X= 'McGonagall'
5.?-magic(hermione). answer yes, X= hermione
但如果我问prolog查询,例如:
?-magic(house_elf).
它说ERROR:magic / 1:未定义的程序:向导/ 1然后抛出异常:例外:(7)向导(house_elf)?对于第3,4,5个查询它是一样的,它是什么意思?
答案 0 :(得分:0)
简单地说,目标向导/ 1未定义。
Recent Prologs尝试帮助调试未定义谓词的信号。 您可以避免添加指令
时出错:- dynamic(wizard/1).