Итераторы в Scala, которые используют ленивую оценку или слияние?
Я слышал, что повторяющиеся ленивы, но как ленивыименно так они? Или же можно объединить итераторов с функцией постобработки, чтобы не нужно было создавать промежуточную структуру данных?
Могу ли я, например, в моей итерации собрать 1 миллион предметовStream[Option[String]]
изjava.io.BufferedReader
, а затем впоследствии отфильтроватьNone
s композиционным способом, не требуя, чтобы весь поток был сохранен в памяти? И в то же время гарантировать, что я невзорвать стек? Или что-то в этом роде - это не такЯ должен использовать .I 'Stream
В настоящее время я использую Scalaz 6, но если другие реализации Iteratee могут сделать это лучше, яМне было бы интересно узнать.
Пожалуйста, предоставьте полное решение, включая закрытиеBufferedReader
и звонитunsafePerformIO
, если это применимо.