ATE meia noite de 18/9
Implemente um contador. Esse contador pode ser implementado como uma
lista de tuplas onde cada tupla é no formado
(chave, contador). Ou o contador pode ser implementado
usando um dicionario do Data.Map.Strict
Implemente a funçao:
incrementar :: Eq a => Conta -> a -> Conta
Onde Conta é o tipo do seu contador (nao precisa definir
esse tipo usando o data). A funcao recebe um contador, um
item e incrementa no contador a contagem do item, retornando o contador
atualizado.
usando o incrementar acima, escreva a função
letra_mais_comum :: [Char] -> Char
que recebe um string e retorna a letra mais comum no string. Use as seguintes regras
incrementar acimaAssim
letra_mais_comum "77,88 a!? abc BB 8 8 8 fyt"
retorna b (ou B)
b e B sao a mesma letraVoce pode utilizar todas as funções do Data.List e
Data.Map.Strict. Relevantes para o problema sao funcoes
como sort e suas variaçõoes ou maximum e suas
variacoes.
Para usar o sort, por exemplo, use
import Data.List sort
no comeco do seu programa.
Como sempre, voce pode definir quaisquer funçoes auxiliares que voce quiser.
A correção da 2a parte letra_mais_comum nao vai depender
se sua implementacao do incrementar esta certa ou não.Ou
seja, eu vou considerar que o incrementar funciona
corretamente na correcao da parte 2.