Questão 23: isSuffixOf
Voltar
Apresente uma definição recursiva da função (pré-definida) isSuffixOf :: Eq a => [a] -> [a] -> Bool que testa se uma lista é sufixo de outra.
Exemplo
> isSuffixOf [20,30] [10,20,30]
True
> isSuffixOf [10,30] [10,20,30]
False Resolução
isSuffixOf :: Eq a => [a] -> [a] -> Bool
isSuffixOf [] _ = True
isSuffixOf _ [] = False
isSuffixOf l l'@(_:t) = l == l' || isSuffixOf l t Explicação
l'@(h:t) significa que a lista l' tem cabeça h e cauda t. Isto é equivalente a escrever:
isSuffixOf l l' = ...
where (h:t) = l'