Home › フォーラム › AZ-Prologサポート掲示板 › =.. call を使った例:エラーになります。 › 返信先: =.. call を使った例:エラーになります。
2016/10/20 8:29 AM
#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.