Prolog不会“返回”真或假

时间:2015-03-09 11:29:16

标签: prolog return prolog-toplevel

我有点问题。我得到了一个Prolog查询,"返回"我想要的值,但然后作为第二个值,我希望它返回true或false。我的其他查询一切正常,但这个没有。

这就是我得到的:

queryA(T).
T = [..].

这就是我需要的:

queryA(T).
T = [..];
false/true.

我希望你能帮助我。谢谢!

编辑:

Prolog代码: 在知识库中查找所有特征结构记录(在prolog中表示为列表[attribute:value,attribute:value,...]),"返回"如果没有较小的值,则比OldEvent或OldEvent大的最小记录。

turnEventNotAlreadyUsed(Event, OldEvent) :-
    findall(R,
          (  fsr(R),
             type(R, turnEvent)
           ),
            List),
    list_min(List,OldEvent, Event).

如果没有OldEvent(OldEvent具有值:" unknown")则只需获取最新的功能结构记录。

list_min([X], _, X).       % X is min for single list, [X]
list_min(X,OldEvent,MinFSR):-           
   OldEvent = "unknown",
   latest(MinFSR, X),
   !.

%   [...]

latest(R, [R]) :- !.
latest(R, [H|T]) :-
   latest(L, T),
   (  after(L, H), !, R = L
   ;  after(H, L), !, R = H
   ).

我对OldEvent = "unknown"不满意,如何检查OldEvent是普通字符串还是列表?

0 个答案:

没有答案