SWI Prolog等价

时间:2017-06-19 19:34:23

标签: loops prolog

我认为这是一个非常简单的问题,但我仍然无法解决。

如何在Prolog中定义两个方向的逻辑结果?

例如我的数据库包含:

need_umbrealla(X) :- rainy(X).
rainy(X) :- need_umbrealla(X).

如果我发出请求,它总会导致永久循环

rainy(X).

给我的口译员。

我能在那里做什么?

感谢您的帮助=)

1 个答案:

答案 0 :(得分:1)

您宣布为多雨的变量X是需要保护伞的变量。什么是X?天气需要雨伞吗?

你可以宣布:
needs_umbrella(X , rainy).

请求:

needs_umbrella(monday, rainy).  
true

needs_umbrella(monday, sunny).
false