我做的一个小程序有问题。下面是有问题的部分。
failed(X, C, Y) :-
registered_for(
student(id(X),_,_,_,_,_),
course(name(C),year(Y),_),absences(A)),
A>2.
failed(X, C, Y) :-
grades(
course(name(C),year(Y),_),
student(id(X),_,_,_,_,_),_,normal(G),_,_),
G<5.
count_failed(X, C, Y, N) :-
failed(X, C, Y),
append(L, C, L),
length(_,L,N).前两行代码正常工作。问题就在最后的某个地方。我想将C添加到列表L中,但得到的结果是"ERROR : Out of global stack“。我正在使用SWI-prolog。
如果需要,我可以发布其余的代码。提前感谢您的时间和努力:)
发布于 2011-03-01 01:05:06
您不会使用findall来组合列表吗?堆栈溢出的原因可能是append(L,C,L),因为L永远不会统一到这个子句中的任何东西。
https://stackoverflow.com/questions/5144495
复制相似问题