que estaba viendo la forma de plegado se define por immutable.Set:¿Por qué fold tiene el siguiente tipo en Scala?
def fold [A1 >: A] (z: A1)(op: (A1, A1) ⇒ A1): A1
todavía foldLeft se define como:
def foldLeft [B] (z: B)(op: (B, A) ⇒ B): B
Este se ve raro para mí, al menos a primera vista, ya que esperaba fold para poder cambiar el tipo de la colección que devolvió, al igual que foldLeft.
Imagino que esto se debe a que foldLeft y foldRight garantizan algo sobre el orden en que se pliegan los elementos. ¿Cuál es la garantía dada por fold?
¿Te ayuda la respuesta de Jean-Philippe? Ver http://stackoverflow.com/questions/6253978/difference-between-fold-and-foldleft-or-foldright –
En cierto modo, supongo. Todavía tengo que ver un caso en el que fold devuelva resultados diferentes de foldLeft en la API de recopilación, pero supongo que puede haber algunas implementaciones donde esta distinción sea necesaria. Gracias por el enlace. –