una significa que página pagina estructura encuentra dentro definicion body basica scala fold

scala - significa - PlegarRight en estructura perezosa infinita



que significa title en html (1)

De acuerdo con http://en.wikipedia.org/wiki/Fold_(higher-order_function ), un pliegue a la derecha puede operar en listas infinitas si no es necesario evaluar la lista completa. Esto se puede ver en acción en haskell:

Prelude> take 5 (foldr (:) [] [1 ..]) [1,2,3,4,5]

Esto no parece funcionar bien en scala para flujos:

Stream.from(1).foldRight(Stream.empty[Int])( (i, s) => i #:: s).take(5) // StackOverflowError

o en iteradores:

Iterator.from(1).foldRight(Iterator.empty: Iterator[Int]){ (i, it) => Iterator.single(i) ++ it }.take(5) // OutOfMemoryError: Java heap space

¿Existe una solución práctica para lograr un pliegue perezoso en Scala?


Este artículo hace la misma observación y sugiere una solución perezosa utilizando scalaz. Crédito para el autor, y Tony Morris.