ПРИМЕЧАНИЕ. Я нахожусь в Scala 2.8-can, что может быть проблемой?
Почему я не могу использовать функцию fold так же, как foldLeft или foldRight?
В Set scaladoc говорится, что:
Результат сгибания может быть только супертипом этого параметра типа параллельной коллекции
T.
Но я не вижу параметра типа T в сигнатуре функции:
def fold [A1 >: A] (z: A1)(op: (A1, A1) ⇒ A1): A1
В чем разница между foldLeft-Right и fold, и как использовать последнюю?
EDIT: Например, как бы я написал сводку, чтобы добавить все элементы в список? С foldLeft это будет:
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)(_ + _)
    ^
