prolog约束

时间:2012-08-06 23:37:00

标签: prolog constraint-programming

我有功能

test(X, Y, Z) :-
   { Z = Y+X },!.

当我运行查询时

test(1,X,8), test(X,4,8), test(1,5,X)

我能够获得X的值,但如果我这样做

test(X, Y, Z) :-
   { Z = Y**X },!.

我为每个类似于

的查询收到错误

未处理的异常:未知消息:type_error(nf(_G353 ** 1,_G351),1,数字表达式,_G353 ** 1)

我尝试了其他操作员,他们都工作,我猜**是特殊的,但我们究竟如何处理?

1 个答案:

答案 0 :(得分:2)

假设你的意思是**表示取幂,你想要的运算符是^; **不是prolog中的有效运算符,因此是错误消息。