2010-03-19 143 views
1

我得到了幾個結果,輸出相同。如何避免序言中的重複

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

我該如何避免這種情況?我試過setof,但我無法完成。請有人可以幫我解決這個問題嗎?

+0

可能您的算法只是創建了兩次結果。沒有看到源代碼,很難說爲什麼。 – sth

回答

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更多細節。

+0

我試過這個解決方案,但它不工作。我真的不知道爲什麼。它說那些undefined – Nubkadiya

+1

@Pradeep - 你試過什麼,什麼「那些」是未定義的? – Enigmativity