如何修复Prolog类型错误:应为“callable”,找到“1”

如何修复Prolog类型错误:应为“callable”,找到“1”,prolog,Prolog,以下是我的消息来源: and(A,B) :- A,B. and(A,B) :- A=:=1, B=:=1. 我希望在布尔或数字输入中使用and,其中1为真,0为假,并得到正确的结果 我运行脚本并编写以下查询: A=0,B=1,和A,B 但我得到了一个错误: 错误:和/2:类型错误:应为“callable”,找到“1”Prolog标准定义了一个可调用的/1内置谓词。这是一个类型检查谓词,当其参数绑定到可调用项时为true。因此,您可以这样写,例如: and(A,B) :- callable(A)

以下是我的消息来源:

and(A,B) :- A,B.
and(A,B) :- A=:=1, B=:=1.
我希望在布尔或数字输入中使用and,其中1为真,0为假,并得到正确的结果

我运行脚本并编写以下查询:

A=0,B=1,和A,B

但我得到了一个错误:


错误:和/2:类型错误:应为“callable”,找到“1”

Prolog标准定义了一个可调用的/1内置谓词。这是一个类型检查谓词,当其参数绑定到可调用项时为true。因此,您可以这样写,例如:

and(A,B) :- callable(A), callable(B), call((A,B)).
and(A,B) :- A=:=1, B=:=1.

Prolog标准定义了一个可调用的/1内置谓词。这是一个类型检查谓词,当其参数绑定到可调用项时为true。因此,您可以这样写,例如:

and(A,B) :- callable(A), callable(B), call((A,B)).
and(A,B) :- A=:=1, B=:=1.