0
Моя задача - создать гистограмму, которая выводит количество раз, когда элемент, который он есть в списке.создать гистограмму OCaml
Input:[2;2;2;3;4;4;1]
Output[(2, 3); (2, 2); (2, 1); (3, 1); (4, 2); (4, 1); (1, 1)]
Expected output : [(2, 3); (3, 1); (4, 2); (1, 1)]
My code:
let rec count a ls = match ls with
|[] -> 0
|x::xs when x=a -> 1 + count a xs
|_::xs -> count a xs
let rec count a = function
|[] -> 0
|x::xs when x=a -> 1 + count a xs
|_::xs -> count a xs
let rec histo l = match l with
|[] -> []
|x :: xs -> [(x, count x l)] @ histo xs ;;
Что я сделал не так?
Вы не вынимая подсчитанные элементы из списка, так что они будут найдены и снова подсчитывали. – melpomene
Любая идея, как я могу их удалить? –