1

我有这个功能

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,a numeric expression,_G353**1)

我尝试了其他运算符,它们都可以工作,我猜 ** 是特殊的,但我们具体如何处理呢?

4

1 回答 1

2

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

于 2012-08-07T00:58:39.610 回答