【发布时间】:2012-10-30 22:48:43
【问题描述】:
我有这个事实:
morpheme(a,82).
morpheme(r,83).
我有这个规则:
foo(er,Start) :-
morpheme(a,Start), morpheme(r,I), I is Start+1,
not(morfema(_,J)), J is I+1.
当我询问时:
foo(er,82).
我得到的是“假”(错误答案)而不是“真”(正确答案)。
在查询中,我试图说:“如果在起始位置“Start”中有语素 AR,并且在更高位置(高于 Start+1)没有更多语素,则触发规则“ .
我尝试使用 \+ 和 cut-fail (http://stackoverflow.com/questions/3850563/writing-prolog-statement-with-not-operator) 但没有成功:(
我认为问题出在我编写规则的方式上。
提前致谢!!!
【问题讨论】:
标签: prolog