1

我对 Prolog 完全陌生。所以请原谅这个可能非常简单的问题:我有一些事实,比如

likes(peter,cars).
likes(maria,bikes).
likes(walter,bikes).
likes(paul,bikes).
likes(paul,cars).

在一个文件中likes.pl。现在我正在尝试检查是否paul喜欢cars bikes,所以我尝试了 GNU Prolog 的 REPL:

| ? - [likes].
| ? - likes(paul,bikes) #\/ likes(paul,cars).

但我得到“未捕获的异常:...”。显然我做错了什么。- 如何在 GNU Prolog 中将两个事实与 AND 结合起来?

4

1 回答 1

2

您使用的运算#\/符是在约束规划中使用的布尔有限域运算符clp(b)

如果您只想将两个事实 A 和 B 结合起来,请使用A, B. 如果您想分离它们,请使用A; B.

在您的情况下,您只需键入likes(paul, bikes), likes(paul, cars)..

于 2021-06-11T01:12:33.177 回答