Java 8: ручьи и решето ЭратосфенаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java 8: ручьи и решето Эратосфена

Сообщение Anonymous »

Решето Эратосфена можно очень аккуратно реализовать в Haskell, используя ленивость для генерации бесконечного списка, а затем удаляя все кратные началу списка из его хвоста:

Код: Выделить всё

primes :: [Int]
primes = sieve [2..]
sieve (x:xs) = x : sieve [y | y  0]
Я пытаюсь научиться использовать потоки в Java 8, но не понимаю, есть ли способ добиться того же результата в Java, что и в приведенном выше коде Haskell. Если я рассматриваю ленивый список Haskell как эквивалент потока Java, кажется, что мне нужно взять поток, начинающийся с 2, и создать новый поток с удалением всех кратных 2, а затем взять этот поток и создать новый поток со всеми кратные 3 удалены, и...

И я понятия не имею, как действовать.

Есть ли какой-нибудь способ сделать это, или я обманываю себя, когда пытаюсь думать о потоках Java как о списках Haskell?

Подробнее здесь: https://stackoverflow.com/questions/437 ... atosthenes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»