Итак, я разработал следующую функцию для определения, является ли данное число простым числом в Хаскеле (предполагается, что первое простое число равно 2):
isPrime k = length [ x | x <- [2..k], k `mod` x == 0)] == 1
есть очевидная опасность продолжения оценки, даже если она делится на несколько чисел :(. Есть ли вменяемый способ «вырезать» оценку, когда он находит более одного решения, используя список постижения?
Кроме того, какие еще реализации вы бы примерили? Я не ищу здесь производительность, я просто пытаюсь выяснить, есть ли другие, более «скромные» способы сделать то же самое.