Free Palestine and Lebanon 🍉 Stop the Genocide
Haskell Logo

Programação Funcional

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

Clica para revelar

lookup :: Eq a => a -> [(a,b)] -> Maybe b
lookup _ [] = Nothing
lookup e ((a,b):t)
    | e == a = Just b
    | otherwise = lookup e t