我有一个具有这种结构的递归程序:
P1(I,SOL):-
'does something',
P(I,[I],SOL).
P1(A,B,SOL):-
'does something',
P2(A1,B1,B2,SOL).
P2(A,_,_,SOL):-
goal(A).
P2(A,B,C,D):-
'does something',
MARK,
'does something',
P2(A1,B1,B2,SOL).
在MARK
我有条件(C<Limit
)。
问题是当该条件失败时,程序不会失败。我认为它回溯并继续运行不会消耗大量内存,如果不满足条件,如何使程序失败?