2
私は一重引用符で質問があります。 p == 'p'はtrueを返しますが、なぜp = \ = 'p'がfalseを返さないのですか? 'p'は関数ではないというエラーが表示されます。なぜp = = 'p'はSWI-prologでエラーを返しますか?
私は一重引用符で質問があります。 p == 'p'はtrueを返しますが、なぜp = \ = 'p'がfalseを返さないのですか? 'p'は関数ではないというエラーが表示されます。なぜp = = 'p'はSWI-prologでエラーを返しますか?
==
checks term equalityのため、=\=
checks arithmetical inequalityです。 p
ようであることは数ではない、Prologはその算術値を見つけるためにしようと、算術式として扱い:
1 ?- p == 'p'.
true.
2 ?- p =/= 'p'.
ERROR: Syntax error: Operator expected
ERROR: p
ERROR: ** here **
ERROR: =/= 'p' .
2 ?- p =\= 'p'.
ERROR: =\=/2: Arithmetic: `p/0' is not a function
3 ?-
@lurkerのおかげ!私はそれを修正しました。 – 921Kiyo