Iteratees w Scali, które używają leniwej oceny lub fuzji?

Słyszałem, że iteracje są leniwe, ale jak leniwedokładnie czy oni są? Alternatywnie, czy iteracje można połączyć z funkcją postprocessingu, aby nie trzeba było budować pośredniej struktury danych?

Czy na przykład w moim iteracie mogę zbudować milion egzemplarzyStream[Option[String]] odjava.io.BufferedReader, a następnie odfiltrujNones, w sposób kompozycyjny, bez konieczności trzymania całego strumienia w pamięci? A jednocześnie gwarantuję, że nie wysadzę stosu? Albo coś w tym stylu - nie musi używaćStream.

Obecnie używam Scalaz 6, ale jeśli inne implementacje iteracyjne są w stanie zrobić to w lepszy sposób, chciałbym wiedzieć.

Proszę podać kompletne rozwiązanie, łącznie z zamknięciemBufferedReader i wołanieunsafePerformIO, jeśli dotyczy.

questionAnswers(2)

yourAnswerToTheQuestion