列表中元素的最大间距,Prolog
如何确定谓词,如gap(+List,+a,-Output)。列表中元素的最大间距,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
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