私はPrologを初めて使用し、変数が忘れられているように見える問題を抱えています
test(S) :-
X = 'testing',
(S = y, write(X) );
(S = n, write(X) ).
ランニング
test(y)
期待どおりにテキストを出力しますが、
test(n)
プリントアウト
_L160
変数がインスタンス化されていないことを意味すると思いますか? なぜこうなった?
次のような2つの述語に吐き出すことができることを私は知っています:
test(y) :- X = 'testing', write(X).
test(n) :- X = 'testing', write(X).
しかし、私の実際の問題は、このように単純化できないはるかに大きな述語にあります。