我编写了以下程序来验证“S”指定的学生是否在他的所有科目中都获得了“A”级。在这里,我知道只有当搜索树中的所有路径都被评估为“A”级时,我才能给出输出“真”。如果学生没有通过削减谓词获得“A”级,我能够实现。但是当所有路径都被搜索到时,真的没有得到如何指定它评估为 true 的谓词。
grade(123,'CSE1','A').
grade(123,'DIC','A').
grade(123,'ML','A').
grade(123,'PL','A').
grade(123,'CVIP','A').
grade(1234,'CSE1','A').
grade(1234,'DIC','A').
grade(1234,'ML','A').
grade(1234,'PL','B').
grade(1234,'CVIP','B').
honor(S):-grade(S,_,Y),not(Y='A'),!,false.