Proj 3

ATE meia noite de 18/9

1) incrementar (função auxiliar)

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.

2) letra mais comum

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

Assim

letra_mais_comum  "77,88 a!? abc BB 8 8    8  fyt" 

retorna b (ou B)

Voce 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.