我想写给出列表的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