我有一个非常简单的方程式,希望能在prolog中解决:
A = B + C
我想写一个谓词来表达这个关系,可以处理任何一个参数未被实例化的情况。不需要推广到更复杂的关系或方程。
myEquation(A, B, C) :-
...something...
我可以使用以下语义来调用它:
myEquation(A,1,2).
> A = 3.
myEquation(3,B,2).
> B = 1.
myEquation(3,1,C).
> C = 2.
有什么想法吗?使用算术运算符会导致很多“Arguments are not sufficiently instantiated”错误。看起来解决任意方程组超出了大多数Prolog实现的范围,但我希望这个极其简单的方程是可处理的。
plus/3
),通过检查给定的变量来实现。例如,如果A
是一个整数,那么integer(A)
将返回true。只需要几个子句或if-then-else结构来检查每种情况。 - lurker