【发布时间】:2011-09-13 11:12:11
【问题描述】:
我已经开始通过 http://www.learnprolognow.org/ 学习 Prolog。我的借口是我才刚刚开始。
我不确定应该如何编写以下(简单?)练习以按预期工作。 http://cs.union.edu/~striegnk/learn-prolog-now/html/node13.html#sec.l1.exercises
我可以看到 Gnu Prolog 1.4 ( http://www.gprolog.org/ ) 不满意 wizard\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
【问题讨论】:
标签: prolog