我正在尝试实施Prolog任务以便学习它:
终端输入输出对示例:
Input Output
num_cred([pai,qf,d],X). 30
courses(alice,X). [pai,qf,d]
pass2(X). alice
fail2(X). bob
这是我到目前为止所做的事情:
num_cred([], 0).
num_cred([H|T], Sum) :- num_cred(T, Rest), course(H, P, C), Sum is C + Rest.
courses(X,Y).
pass2(X).
fail2(X).
/*Level 2 tests*/
course(pai,inf,10).
course(qf,eco,10).
course(d,law,10).
student(alice,ss).
attend(alice,pai).
attend(alice,qf).
attend(alice,d).
student(bob,ss).
attend(bob,pai).
你知道为什么我的num_cred规则不起作用吗?当我用num_cred([qf,pai],0)测试它时。我明白了:参数没有充分实例化。
非常感谢任何有关这些规则的帮助/提示。
非常感谢。