prolog中的错误未定义过程

时间:2013-12-18 17:29:27

标签: prolog

我正在使用以下知识库:

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个查询它是一样的,它是什么意思?

1 个答案:

答案 0 :(得分:0)

简单地说,目标向导/ 1未定义。

Recent Prologs尝试帮助调试未定义谓词的信号。 您可以避免添加指令

时出错
:- dynamic(wizard/1).