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,数値式,_G353**1)

私は他の演算子を試してみましたが、それらはすべて機能します。** は特別だと思いますが、正確にはどのように処理すればよいのでしょうか?

4

1 に答える 1

2

累乗を示すために ** を意味すると仮定すると、必要な演算子は ^; です。** はプロローグでは有効な演算子ではないため、エラー メッセージが表示されます。

于 2012-08-07T00:58:39.610 に答える