Free Palestine and Lebanon 🍉 Stop the Genocide
Haskell Logo

Programação Funcional

Questão 19: idade

Voltar

Defina a função idade :: Int -> Int -> [(String,Int)] -> [String] que recebe o ano, a idade e uma lista de pares com o nome e o ano de nascimento de cada pessoa, e devolve a listas de nomes das pessoas que nesse ano atingirão ou já ultrapassaram a idade indicada.

Exemplo

> idade 2021 26 [("rui",1995), ("maria",2009), ("ana",1947)]
["rui","ana"]

Resolução

Clica para revelar

idade :: Int -> Int -> [(String,Int)] -> [String]
idade _ _ [] = []
idade ano idadeX ((nome,nasc):t)
    | ano - nasc >= idadeX = nome : idade ano idadeX t
    | otherwise = idade ano idadeX t