我对 Prolog 很陌生,我遇到了一个问题,我的变量似乎被遗忘了
test(S) :-
X = 'testing',
(S = y, write(X) );
(S = n, write(X) ).
跑步
test(y)
按预期打印出文本,但是
test(n)
打印出来
_L160
我假设这意味着该变量未实例化?为什么会这样?
我知道它可以把它吐成两个谓词,比如:
test(y) :- X = 'testing', write(X).
test(n) :- X = 'testing', write(X).
但我的实际问题在于一个更大的谓词,不能像这样简化。