Aula 8

livro texto (cap 7)

Haskell online

compilado

tarefa 3

import Data.Char (toLower)

soma1 [] x = [(x,1)]
soma1 ((ch,v):ls) x 
    | x==ch = (ch,v+1):ls
    | otherwise = (ch,v):(soma1 ls x)
    

vogalmaiscomum str = snd $ maximum $
  map (\ (a,b) -> (b,a)) $ foldl soma1 [] $
  filter (`elem` "aeiou") $ map toLower str

Modulos

import Data.List  -- tudo !!!

import Data.List (nub,sort)  -- apenas

import qualified Data.List as DL -- qualificado

DL.sort

Data.List

De uma olhada em Data.List

Data.Map.Strict

dicionários (implementados como lista balanceados, e tempo de acesso = O(log n)

Data.Map.Strict

import qualified Data.Map.Strict as Map

insertWith :: Ord k => (a -> a -> a) -> k -> a -> Map k a -> Map k a

soma1 dic ch = Map.insertWith (+) ch 1 dic 

Data.char

https://www.haskell.org/hugs/pages/libraries/base/Data-Char.html