N gramas
Un n-grama de una sucesión es una subsucesión de n elementos.
Definir la función
nGramas :: Int -> [a] -> [[a]]
tal que (nGramas k xs) es la lista de los n-gramas de xs de longitud k. Por ejemplo,
nGramas 0 "abcd" == [""] nGramas 1 "abcd" == ["a","b","c","d"] nGramas 2 "abcd" == ["ab","ac","ad","bc","bd","cd"] nGramas 3 "abcd" == ["abc","abd","acd","bcd"] nGramas 4 "abcd" == ["abcd"] nGramas 5 "abcd" == []
Soluciones
nGramas :: Int -> [a] -> [[a]] nGramas 0 xs = [[]] nGramas n [] = [] nGramas n (x:xs) = [x:ys | ys <- nGramas (n-1) xs] ++ nGramas n xs