我想寫給出列表的Prolog的函數返回重複次數最多的在該列表中,像元素(S):最高紀錄在列表
[「一」,「一」, 'b','c','b']應該返回['a','b'] ['c','a','a','c','b','c',' b']應該返回['c'] etc ...
我想用另一個函數來做(它計數列表(countlist)上存在的東西的次數,但我不是得到一些幫助嗎?
listMax(In, Out) :-
listMax(In, Out, 0).
listMax([H | L], [H | O], Max) :-
countlist(H, [H | L], N),
N > Max,
listMax(L, [H | O], N).
listMax([H | L], O, Max) :-
countlist(H, [H | L], N),
<=(Max, N),
listMax(L, O, Max).
listMax([], [], _Max).
listMax([], _O, _Max).
我相信你的意思是's/function/predicate/g'。 (翻譯:他們在Prolog中被稱爲「謂詞」,而不是「功能」。) – 2011-05-21 03:34:02