如何避免在prolog中重复

时间:2010-03-19 02:49:38

标签: prolog

我得到几个具有相同输出的结果。

我想只获得一次jack,jane,但我得到了两次。

我该如何避免这种情况?我试过setof,但我无法完成它。请有人帮帮我吗?

1 个答案:

答案 0 :(得分:1)

此问题在"How to stop repetitions in rules in prolog"中重复。

答案是做这样的事情:

solve :-
    marriedcouple(Dad, Mum),
    not(found(marriedcouple(Dad, Mum))),
    assert(found(marriedcouple(Dad, Mum))),
    write([Dad, Mum]),
    nl,
    fail.

阅读full answer了解更多详情。