次のように、リストを指定すると、そのリストで最も多く繰り返される要素を返す 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).