Вычисление простых чисел в Scala: как работает этот код?
Так что я'мы часами пытались понять, как именно этот код генерирует простые числа.
lazy val ps: Stream[Int] = 2 #:: Stream.from(3).filter(i =>
ps.takeWhile{j => j * j i % k > 0});
Мы использовали несколько printlns и т. д., но ничто не делает его более понятным.
Это то, что я думаю, код делает:
/**
* [2,3]
*
* takeWhile 2*2