2011-05-16 108 views
0

我想编写一个谓词,它从一个事实数据库返回一个解决方案。如果没有解决方案存在谓词应该返回“没有解决方案存在”。返回一个存在于事实库中的解决方案是微不足道的。如何实施“无解决方案”部分。我使用SWI-Prolog。Prolog测试谓词是否失败

回答

2

如果你有一个谓语,说fact/1包含所有的事实,你可以按如下使用if-then-else语句:

fact_or_no_solution(Sol) :- 
    (fact(X) -> 
     Sol = X 
    ; 
     Sol = 'No solution exists' 
    ). 
+0

老兄,你真棒。 – onurozcelik 2011-05-16 12:29:47