我正在尝试编写一个 Prolog 函数,该函数给定一个列表,返回在该列表中重复次数最多的元素,例如:
['a', 'a', 'b', 'c', 'b'] 应该返回 ['a', 'b'] ['c', 'a', 'a', 'c', ' b', 'c', 'b'] 应该返回 ['c'] 等等...
我正在尝试使用另一个函数(计算列表中存在的次数(计数列表),但我没有得到任何帮助。请帮忙?
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).