Prolog 受条件限制的列表的最大值

Prolog 受条件限制的列表的最大值,prolog,Prolog,我有一个列表如下[[[uu,a,D,[uu,[uu],…]。我想找到A的最大值,前提是D等于某个值。我已经编写了以下代码,但它不起作用。有人能帮忙吗 maxL([[_,Max,C,_,_]],C,Max). maxL([[_,A,D,_,_]|F],C,Max):- D==C, maxL(F,C,B), Max is max(A,B). maxL([[_,_,D,_,_]|F],C,Max):- D>C, maxL(F,C,B), B is Max. maxL([

我有一个列表如下
[[[uu,a,D,[uu,[uu],…]
。我想找到
A
的最大值,前提是
D
等于某个值。我已经编写了以下代码,但它不起作用。有人能帮忙吗

maxL([[_,Max,C,_,_]],C,Max).   
maxL([[_,A,D,_,_]|F],C,Max):- 
    D==C, maxL(F,C,B), Max is max(A,B).
maxL([[_,_,D,_,_]|F],C,Max):- 
    D>C, maxL(F,C,B), B is Max.
maxL([[_,_,D,_,_]|F],C,Max):- 
    D<C, maxL(F,C,B), B is Max.
maxL([[[uu,Max,C,[uu,]C,Max)。
最大值([[uu,A,D,[uu,[uu]| F],C,Max):-
D==C,maxL(F,C,B),Max是Max(A,B)。
最大值([[uu,[uu,D,[uu,]F],C,Max):-
D> C,maxL(F,C,B),B是最大值。
最大值([[uu,[uu,D,[uu,]F],C,Max):-

D使用库聚合,很容易

maxL(L, C, Max) :- aggregate_all(max(A), member([_,A,C,_,_], L), Max).
测试:

1 ?- maxL([[_,1,y,_,_],[_,2,y,_,_],[_,3,n,_,_]], y, M).
M = 2.