Prolog更多结果查询

时间:2014-12-30 16:20:36

标签: prolog

我有这个规则和事实 - 很容易。

alergicky(novotny, mleko).
alergicky(novotny, korysi).
alergicky(cerna, lepek).
alergicky(cerna, ryby).

obsahuje(kapr, ryby).
obsahuje(krupice, mleko).
obsahuje(chleba, lepek).
obsahuje(chobotnice, korysi).

neji(F,C):-alergicky(F,X),obsahuje(C,X).

现在我要求和prolog给我这个。

2 ?- neji(novotny,X).
X = krupice

- 但我需要两个结果,因为X = chobotnice也是如此。

请问我怎么能和prolog给我正确的结果?

1 个答案:

答案 0 :(得分:0)

如果您想同时获得所有结果,也可以使用findall/3

?- findall(X, neji(novotny, X), Y).
Y = [krupice, chobotnice].

否则鲍里斯对你的帖子的评论就是你所需要的。