【发布时间】:2014-06-19 08:45:10
【问题描述】:
好的,我正在编写一些代码来通过 Prolog 中的相互递归来检查每个值。 到目前为止,这是我的代码:
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).
我还没有放入任何与检查有关的代码(有两个关系,因为它必须检查交替值),我遇到了代码循环问题,直到它有一个空列表,然后它失败了并返回错误(否)。由于此代码没有操纵任何代码,我相信它应该像现在一样恢复真实。为什么不是?
【问题讨论】:
标签: recursion prolog mutual-recursion