我正在尝试编译和查询此代码:
got('no').
inMap(X,Y):- print("From inMap").
mask(1,3).
doctor(2,1).
verify(X,Y):-
(inMap(X,Y), ((\+(got('mask'); got('vaccine')),farCovid(X,Y)); True),
(print(X), print(Y); True),
(doctor(X,Y), print(X), print(Y); True)).
当我的查询是:?-验证(2,1)。
它返回:
"From inMap""From farCovid"2121
true .
但是当我的查询是:?-验证(1,1)。
它返回:
"From inMap""From farCovid"11
ERROR: Arguments are not sufficiently instantiated
ERROR: In:
ERROR: [10] verify(1,1)
ERROR: [9] <user>
有人可以向我解释这里有什么问题吗,难道不应该在第二个查询中将 (1,1) 传递给医生 (X,Y) 并返回 false 吗?
提前致谢!