Итераторы в Scala, которые используют ленивую оценку или слияние?

Я слышал, что повторяющиеся ленивы, но как ленивыименно так они? Или же можно объединить итераторов с функцией постобработки, чтобы не нужно было создавать промежуточную структуру данных?

Могу ли я, например, в моей итерации собрать 1 миллион предметовStream[Option[String]] изjava.io.BufferedReader, а затем впоследствии отфильтроватьNones композиционным способом, не требуя, чтобы весь поток был сохранен в памяти? И в то же время гарантировать, что я не взорву стек? Или что-то в этом роде - он не должен использоватьStream.

В настоящее время я использую Scalaz 6, но если другие реализации Iteratee смогут сделать это лучше, мне было бы интересно узнать.

Пожалуйста, предоставьте полное решение, включая закрытиеBufferedReader и звонитunsafePerformIO, если это применимо.

Ответы на вопрос(2)

Ваш ответ на вопрос