Dada uma string de dígitos, produza todas as substrings contíguas de comprimento n dessa string, na ordem em que aparecem.
Por exemplo, a string "49142" tem as seguintes séries de 3 dígitos:
E as seguintes séries de 4 dígitos:
E se você pedir uma série de 6 dígitos a partir de uma string de 5 dígitos, você merece o que receber.
Repare que essas séries só precisam ocupar posições adjacentes na entrada; os dígitos não precisam ser numericamente consecutivos.
Para completar este exercício, você precisa implementar a função slices,
que recebe um texto e retorna as subsequências de dígitos com um
tamanho especificado:
Se esta for a primeira vez que você resolve este exercício, é recomendável usar a assinatura fornecida:
slices :: Int -> String -> [[Int]]
Mais tarde, pode ser uma boa ideia voltar a este problema e brincar com outros tipos de dados e bibliotecas:
ByteString, do pacote bytestring.Sequence, do pacote containers.Text, do pacote text.Vector, do pacote vector.A suíte de testes foi projetada de propósito para aceitar quase qualquer assinatura de tipo que faça sentido, então vale a pena você procurar a que considerar melhor.
Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.