Dado un string de dígitos, devuelve todos los substring contiguos de longitud n que aparezcan en él, en el orden en que aparecen.
Por ejemplo, el string «49142» tiene las siguientes series de 3 dígitos:
Y las siguientes series de 4 dígitos:
Y si pides una serie de 6 dígitos de un string de 5 dígitos, te mereces lo que te toque.
Ten en cuenta que estas series solo tienen que ocupar posiciones adyacentes en el string que recibes; los dígitos no necesitan ser numéricamente consecutivos.
Para completar este ejercicio necesitas implementar la función slices,
que toma un text y devuelve las subsecuencias de dígitos con un
tamaño especificado:
Si es la primera vez que resuelves este ejercicio, se recomienda que te quedes con la firma proporcionada:
slices :: Int -> String -> [[Int]]
Más adelante, puede ser buena idea volver a este problema y jugar con otros tipos de datos y bibliotecas:
ByteString, del paquete bytestring.Sequence, del paquete containers.Text, del paquete text.Vector, del paquete vector.La suite de tests se diseñó a propósito para aceptar casi cualquier firma de tipo que tenga sentido, así que te animamos a encontrar la que creas que es la mejor.
Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.