subsecuencias de longitud n desde el rendimiento de la lista
Implementé una versión de esta respuesta.https://stackoverflow.com/a/9920425/1261166 (No sé lo que pretendía la persona que responde)
sublistofsize 0 _ = [[]]
sublistofsize _ [] = []
sublistofsize n (x : xs) = sublistsThatStartWithX ++ sublistsThatDontStartWithX
where sublistsThatStartWithX = map (x:) $ sublistofsize (n-1) xs
sublistsThatDontStartWithX = sublistofsize n xs
de lo que no estoy seguro essublistsThatStartWithX = map (x:) $ sublistofsize (n-1) xs
Asumo que el mapa (x :) da un problema de rendimiento, pero no estoy seguro de cómo resolverlo. He hecho perfilado enprint $ length $ sublistofsize 5 $ primesToTakeFrom 50
COST CENTRE MODULE no. entries %time %alloc %time %alloc
sublistofsize Main 112 4739871 46.9 39.9 96.9 100.0
sublistofsize.sublistsThatDontStartWithX Main 124 2369935 2.2 0.0 2.2 0.0
sublistofsize.sublistsThatStartWithX Main 116 2369935 47.8 60.1 47.8 60.1
¿Lo implementé de buena manera? ¿Hay alguna forma más rápida de hacerlo?