Questão 35: lookup
Voltar
Apresente uma definição recursiva da função (pré-definida) lookup :: Eq a => a -> [(a,b)] -> Maybe b
que retorna uma lista construída a partir de elementos de uma lista (o segundo argumento) atendendo a uma condição dada pelo primeiro argumento.
Exemplo
> lookup 'a' [('a',1),('b',4),('c',5)]
Just 1
Resolução
lookup :: Eq a => a -> [(a,b)] -> Maybe b
lookup _ [] = Nothing
lookup e ((a,b):t)
| e == a = Just b
| otherwise = lookup e t