Home フォーラム AZ-Prologサポート掲示板 =.. call を使った例:エラーになります。 返信先: =.. call を使った例:エラーになります。

#58457
稲葉
ゲスト

指数の演算子 ^ は is/2 の第二引数または、=:= のいずれかまたは両方に現れた時に数値演算の
評価がされ結果が出されます。

| ?- 3^2 =:= 9.
yes
| ?- X is 3^2.
X = 9
yes

Univ (=..)は単なる項の組み立てですから、表記の例 ?- L =..[^,2,3],call(L). は次に等しくエラーです。
| ?- 2^3.
Illegal Goal —- Backtrace
(=..(^(2,3),[^,2,3]),call(^(2,3))) ?-

なお、AZでは、system/pl/setof.pl で次のような ^/2 の定義がされており、これはsetofの補助述語です。
_ ^ X :- X.

上部へスクロール