Prolog Procedure si(A) Does not Exist



这是代码

verificar(S) :-
(si(S)
->  
true ;
(no(S)
->  
fail ;
preguntar(S))).
preguntar(Pregunta) :-
write('Tiene los siguientes sintomas: '),
write(Pregunta),
write('?'),
read(Respuesta),
nl,
( (Respuesta == si)
->  
assert(si(Pregunta));
assert(no(Pregunta)), fail).

问题是

procedure `si(A)' does not exist
Reachable from:
verificar(A)
resfriado
hipotesis(A)
evaluar

问题是在第一次运行时,程序不知道您使用si(A)的意思,因为没有定义谓词或规则。快速修复:添加虚拟数据,如

si(nothing).
no(nothing).

可以在第一个"valid"之后删除。进入你的知识库。

您还没有为si()编写谓词。这就是为什么你得到错误:-

procedure `si(A)' does not exist

相关内容

最新更新