Data una stringa di cifre, produci in output tutte le sottostringhe contigue di lunghezza n in quella stringa, nell'ordine in cui compaiono.
Per esempio, la stringa «49142» ha le seguenti serie di 3 cifre:
E le seguenti serie di 4 cifre:
E se chiedi una serie di 6 cifre da una stringa di 5 cifre, ti meriti quello che ti capita.
Tieni presente che queste serie devono solo occupare posizioni adiacenti nell'input; le cifre non devono essere numericamente consecutive.
Per completare questo esercizio devi implementare la funzione slices,
che prende un text e restituisce le sottosequenze di cifre di una
dimensione specificata:
Se è la prima volta che risolvi questo esercizio, ti consigliamo di attenerti alla firma fornita:
slices :: Int -> String -> [[Int]]
In seguito, potrebbe essere una buona idea tornare su questo problema e sperimentare con altri tipi di dati e librerie:
ByteString, dal pacchetto bytestring.Sequence, dal pacchetto containers.Text, dal pacchetto text.Vector, dal pacchetto vector.La suite di test è stata progettata di proposito per accettare quasi qualsiasi firma di tipo che abbia senso, quindi ti incoraggiamo a trovare quella che ritieni migliore.
Iscriviti a Exercism per imparare e padroneggiare Haskell con 107 esercizi e il mentoring di persone reali, tutto gratis.