unfold
object Collection {
def unfold[A, S](s: S)(f: (S) => Option[(A, S)]): Collection[A]
}
unfold
crea una colección tomando cada par de valores devueltos por la función f
tanto para obtener el elemento actual como para calcular el siguiente, mientras que la función los devuelva envueltos con Some
.
Deja de construir la colección tan pronto como f
devuelva None
.
La primera vez que f
es aplicada es alimentada con el valor inicial s
.