Prolog:参数未充分实例化

时间:2021-03-08 06:29:34

标签: prolog instantiation-error

我正在尝试编译和查询此代码:

    
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 吗?

提前致谢!

0 个答案:

没有答案