这是代码
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