1
제가 만든 작은 프로그램에 문제가 있습니다. 아래는 문제가있는 부분입니다.프롤로그 및 목록 문제
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).
처음 2 줄이 의도 한대로 작동합니다. 문제는 마지막 어딘가에 있습니다. 목록 L에 C를 추가하고 싶지만 "ERROR : Out of global stack"입니다. SWI-prolog를 사용하고 있습니다.
필요한 경우 나머지 코드를 게시 할 수 있습니다. 미리 시간과 노력에 감사드립니다 :)
또한 append는 목록을 추가하는 데 사용됩니다. - append (L, C, L)은 다음을 의미합니다. C에 목록을 추가하면 모든 변경 사항이 그대로 유지됩니다. – codecraft
예, 목록 구성을 읽는 것이 좋을지도 모르며, 프롤로그를 작성하는 데 매우 기본적인 요소이며,이를 수행하기 위해 append 또는 findall과 같은 함수가 필요하지 않습니다. – codecraft
숙제 인 경우 숙제 태그를 추가해야합니다 :) – codecraft