mapConserve
trait List[A] {
def mapConserve[B >: A](f: (A) => B): List[B]
}
mapConserve
aplica la función f
a cada elemento de esta List
y la
devuelve intacta si todos y cada uno de los elementos transformados son iguales
(en términos de eq
) al elemento a partir del cual fueron obtenidos.
Si al menos un elemento transformado no es igual (en términos de eq
) al
elemento original entonces esta función crea una nueva List
compuesta
por los resultados transformados.