0
以下是我的程序。 單獨....最大和最小功能的作品,但是當我用minmax組合它們時,它會拋出錯誤。查找Prolog中列表的最小和最大值
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
在Prolog中,謂詞並不像功能一樣。所以'[max(T,H,M),min(T,H,M)]'不會執行'min'和'max'作爲函數和返回值。您需要:'minmax(List,Min,最大值): - min(List,Min),max(List,Max).' – lurker