我有点问题。我得到了一个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
是普通字符串还是列表?