谓词,存储最佳比较解决方案

时间:2017-09-03 14:41:45

标签: prolog

我尝试编写一个代码,找到符合我条件的最佳目标

intent.putExtra ("key", "value");

的示例:

point(1,2).
point(1,10).
point(2,3).
point(5,2).
point(4,4). 

best(X, GT, Goal) :- 
    once(Goal),
    assert(val(X)),
    fail 
;
    Goal,
    once(retract(val(Y))),
    keep_greater(GT,X,Y),
    fail
;
    retract(val(X)).

keep_greater(GT,X,Y) :-
    GT(X,Y), !,
    assert(val(X))
;   assert(val(Y)), !.

once(Goal) :- Goal, !.

无法弄清楚为什么它不工作代码总是在保持更大的规则后崩溃。 谢谢你的帮助。

0 个答案:

没有答案