1
나는 프롤로그에서 상호 재귀에 의해 각 값을 확인하는 코드를 작성하고 있습니다. 이 지금까지 내 코드는 다음과 같습니다프롤로그 상호 재귀
semestersok(SP) :-
[Prior|Tail] = SP,
sem1ok(SP).
%% sem1ok(SP) :- checks semester 1 of SP is ok
sem1ok(SP) :-
[Sem1|Tail] = SP,
sem2ok(Tail).
%% sem2ok(SP) :-
sem2ok(SP) :-
[Sem2|Tail] = SP,
sem1ok(Tail).
내가 확인과 관련 아직 어떤 코드를 삽입하지 않은, 내가 코드에 문제가있어 (이 값을 번갈아 확인하는대로이 개 관계있다) 빈 목록이 생길 때까지 사이클을 반복하면 실패하고 false (no)로 돌아옵니다. 이 코드는 어떤 코드도 조작하지 않으므로 지금 당장 그대로서야합니다. 왜 안 그래?
좋아, 바보 같이 들리겠다고 미안하지만 어디에 추가할까요? 이 코드가 나오기 전에? –
술어에 대해 몇 가지 규칙을 쓸 수 있으며 일반적으로 모든 규칙은 함께 묶입니다. 그래서,'sem1ok/1'과'sem2ok/1'에 대한 규칙을 따로 따로 그룹화하십시오. –
굉장해 고마워. 지금은 작동 중이다. 지금은 이상한 행동을 한 후에 행동을 요구하고있다. 그러나 실제로 돌아온다. –