Estoy haciendo el problema 21 en eulerproject. Una parte requiere encontrar la lista de divisores adecuados de un número. es decir, donde hay un resto de n
y una cantidad inferior a n
. Así que hice este Haskell, pero GHCI se enoja conmigo.Hacer una lista de divisores en Haskell
divisors n =[ n | n <- [1..(n-1)], n `rem` [1..(n-1)] ==0 ]
El problema es que no sé cómo hacer:
n `rem` [1..(n-1)]
de modo que sólo devuelve el número menor que n
que dividen uniformemente en n
.
¿Por qué la comprensión de la lista no es muy Haskell? Además, una pequeña pregunta, ¿hay alguna manera de encontrar la suma de la suma de todas las listas en una lista? –
No soy un veterano de Haskell de ninguna manera, pero realmente no he visto ninguna lista de comprensiones usadas en ninguna biblioteca de Haskell, por ejemplo. Respuesta pequeña: 'sum $ map sum x', como' sum $ map sum [[1,2,3], [4,5,6], [7,8,9]] 'que da como resultado 45. –
O 'sum. concat', que primero hace una gran lista. –