Prolog If Statement

时间:2014-03-08 18:33:32

标签: prolog backtracking

我有这段代码:

search(A,[],[]).

search(A,B,C) :-
    select(L1,B,L2),
    select(Name,L1,[Res|_]),
    search(A,L2,T),!,
    (member(A,Res)) -> append([Name],T,C); append([],T,C),  
    sort(C).

当它到达member(A,Res)时,如果它失败,它应该执行append([],T,C)并继续。如果成功,它应该append([Name],T,C)并继续......正确吗?

但事实并非如此。它试图回溯,不管我有什么!操作员之前!

我没看到什么?

感谢您的帮助! :d

0 个答案:

没有答案