Dado un string de dígitos, devuelve todas las subcadenas contiguas de longitud n de ese string 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 a partir de un string de 5 dígitos, te mereces lo que te salga.
Ten en cuenta que estas series solo tienen que ocupar posiciones adyacentes en la entrada; los dígitos no tienen por qué ser numéricamente consecutivos.
Para completar este ejercicio tienes que implementar la función slices,
que recibe un texto 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 ciñas a la firma proporcionada:
slices :: Int -> String -> [[Int]]
Más adelante, puede ser buena idea volver sobre 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.El conjunto de pruebas se diseñó intencionadamente para aceptar casi cualquier firma de tipo que tenga sentido, así que te animamos a que encuentres 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.