【发布时间】:2015-03-06 04:43:23
【问题描述】:
我需要你对 Prolog 的帮助,希望我的解释不会太难。
一般问题是:我有一个包含多个特征结构的列表(实际上是 Prolog 中的特征:值列表),其中的值是“时间:xyz”。我有一个带有参考时间的参考特征结构。现在我需要时间值与我的参考时间最接近的特征结构。
我的计划是浏览列表并将每个条目与当前最小差异与参考时间进行比较。
问题是变量MinFSR 是当前最小值,在第一次调用minimum(...) 时没有值。所以我得到一个错误。
如何检查 MinFSR 是否已经有值?我想检查一下,如果它没有值,那么我想用H 调用list_min 作为新的MinFSR。
list_min([], ReferenceFSR, MinFSR). %if list is empty stop
list_min([H|T], ReferenceFSR, MinFSR) :-
minimum(H, MinFSR, ReferenceFSR, Min1),
list_min(T, ReferenceFSR, Min1).
minimum(FSR1, FSR2, ReferenceFSR, MinFSR):-
% reads out and compares the time of FSR1 and FSR2 to the referenceFSR
% and MinFSR is the FSR1 or FSR2 depending on which has the smaller
% difference
我希望你能理解我的问题,虽然我写的很复杂。 提前致谢!
【问题讨论】: