我有功能
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)
我尝试了其他操作员,他们都工作,我猜**是特殊的,但我们究竟如何处理?
答案 0 :(得分:2)
假设你的意思是**表示取幂,你想要的运算符是^; **不是prolog中的有效运算符,因此是错误消息。