0
事实的结构如何访问事实的特定元素在列表中的序言
%structure
student(ID,FirstName,LastName,[courseList]).
course(CourseCode,CourseTtile,Credits,Level).
以下是事实。
student(20135639,'Mohammed','Abdul Wahab',
[course('ITIS411','DATABASE SYSTEM IMPLEMENTATION',3,hard),
course('ITIS412','INFORMATION SECURITY',3 ,easy),
course('ITIS499','SENIOR PROJECT',3,hard),
course('ITIS469','AI',3,hard)]).
我想写从列表
sum([],0).
sum(H|T,S):-
sum(T,S1),
S is H + S1.
sumCr(Id, Cr):-
student(Id,_,_,Courselist),
sum(Courselist,Cr).
以上规则总结列表中的事实的所有元素求和学分小时的规则,但我想总结只有CR值列表中的所有事实。所以当我运行以下查询时,输出应该是。
?. sumCr(20135639, Cr).
Cr=12.
'sum'不总结什么;它为空列表产生'0',并为任何更长的列表产生未绑定变量。 –
我纠正了错误@ScottHunter – Far
'sum(H | T,S)'有语法问题。另外,你的'sum/2'是为了总结一个整数列表,但是你传递了一个课程名称列表(或者其他的,不清楚)。 – lurker