Así que han ideado la siguiente función para ver si un número dado es primo en Haskell (que asume el primer primer es 2):La determinación de si un número dado es primo en Haskell
isPrime k = length [ x | x <- [2..k], k `mod` x == 0)] == 1
Tiene la trampa obvia de continuar la evaluación, incluso si es divisible por varios números :(. ¿hay alguna cuerdo manera de "cortar" la evaluación cuando se encuentra más de una solución, usando listas por comprensión?
Además, el cual otras implementaciones ¿podrías probar? No estoy buscando rendimiento aquí, solo estoy tratando de ver si hay hay otras maneras más "haskellish" de hacer lo mismo.
posible duplicado de [Lazy List of Prime Num bers] (http://stackoverflow.com/questions/3596502/lazy-list-of-prime-numbers) – Landei