Diferencia entre fold y foldLeft o foldRight?
NOTA: Estoy en Scala 2.8, ¿puede ser un problema?
Por qué no puedo usar lafold
funciona de la misma manera quefoldLeft
ofoldRight
?
En elSet scaladoc dice que
El resultado del plegado solo puede ser un supertipo del parámetro de tipo de esta colección paralelaT
.
Pero no veo ningún parámetro de tipoT
en la firma de la función:
def fold [A1 >: A] (z: A1)(op: (A1, A1) ⇒ A1): A1
¿Cuál es la diferencia entre elfoldLeft-Right
yfold
, y ¿cómo uso este último?
EDIT: Por ejemplo, ¿cómo escribiría un pliegue para agregar todos los elementos en una lista? ConfoldLeft
podría ser
val foo = List(1, 2, 3)
foo.foldLeft(0)(_ + _)
// now try fold:
foo.fold(0)(_ + _)
>:7: error: value fold is not a member of List[Int]
foo.fold(0)(_ + _)
^