Tarefa 3

ATE meia noite de 1/9

soma1

Assuma que um contador é implementado como uma lista de tuplas onde o primeiro elemento da tupla é a chave e o segundo a contagem relativa a chave.

A função soma1 implementada abaixo, dado uma chave e um contador (a lista) soma 1 na contagem relativa à chave no contador, ou inclui a chave na lista com contagem 1 se ela não tiver lista.

soma1 :: (Eq a) => a -> [(a,Int)] -> [(a,Int)]

soma1 ch [] = [(ch,1)]
soma1 ch ((a,n):ds) 
    | ch==a = (a,n+1):ds
    | otherwise = (a,n):(soma1 ch ds)

letramaiscomum

Considere que letra é qualquer caracter que não o branco ( e coisas similares como o tab e o newline).

Implemente a função letramaiscomum que dado um string retorna a letra mais comum no string que não o branco/space. Considerar que letras maiúsculas e minúsculas contam como a mesma letra. Se duas ou mais letras tem a mesma contagem, sua função pode retornar qualquer uma dessas letras.

Utilize alguma função de alto nivel: map, filter, fold, etc neste problema

funções talvez uteis

que voce pode usar se quiser