以下是我的计划。 单独....最大和最小功能工作,但当我使用minmax组合它时,它会抛出错误。
max([H|T], M) :- max(T, H, M).
max([], M, M).
max([H|T], Y, M) :- H =< Y, max(T, Y, M).
max([H|T], Y, M) :- H > Y, max(T, H, M).
直到这里最大代码单独工作
min([H|T], M) :- min(T, H, M).% \+ means "not" //// min code starts
min([], M, M).
min([H|T], Y, M) :- H =< Y, min(T, H, M).
min([H|T], Y, M) :- H > Y, min(T, Y, M). /// till here min code works
minmax([H|T],[max(T,H,M),min(T,H,M)]). /// this is statetment with problem
答案 0 :(得分:0)
现在@lurker已经解决了你的错误。我在这里只是为了展示库(聚合)如何解决您的需求:
?- aggregate((min(C),max(C)),member(C,[3,6,2,6,1,9,2]),R).
R = (1, 9).