注: 私は Scala 2.8 を使用していますが、問題になる可能性はありますか?
関数をorfold
と同じように使用できないのはなぜですか?foldLeft
foldRight
Set scaladocには、次のように書かれています。
折り畳みの結果は、この並列コレクションの type parameter のスーパータイプのみである可能性があります
T
。
T
しかし、関数シグネチャに型パラメーターがありません。
def fold [A1 >: A] (z: A1)(op: (A1, A1) ⇒ A1): A1
foldLeft-Right
との違いは何fold
ですか? 後者はどのように使用すればよいですか?
編集:たとえば、リスト内のすべての要素を追加する折り畳みをどのように記述しますか? 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)(_ + _)
^