列表中元素的最大间距,Prolog

列表中元素的最大间距,Prolog,prolog,Prolog,如何确定谓词,如gap(+List,+a,-Output)。 A是列表中的一个元素,我们需要在列表中找到另一个元素B,abs(B-A)比任何其他元素(命名为C)都大,输出是abs(B-A)。我不知道怎么做。一些谓词值得学习:,: 这是关于整数/数字的列表吗? gap(List, A, Output) :- maplist([X,Y] >> (Y is abs(X-A)), List, Diffs), % make a list of abs diffs selec

如何确定谓词,如gap(+List,+a,-Output)。
A是列表中的一个元素,我们需要在列表中找到另一个元素B,abs(B-A)比任何其他元素(命名为C)都大,输出是abs(B-A)。我不知道怎么做。

一些谓词值得学习:,:


这是关于整数/数字的列表吗?
gap(List, A, Output) :-
    maplist([X,Y] >> (Y is abs(X-A)), List, Diffs),  % make a list of abs diffs
    select(Output, Diffs, Others),                   % select a diff
    forall(member(Other, Others), Output >= Other).  % check that is maximum
?- gap([1,10,50,100,120], 50, X).
X = 70