第2編集: 私はばかです。フォールドは、入力タイプと同じ値を返す必要があります。 たとえば、下のすべての折り畳みをfoldLeftsに置き換えれば動作します。 標準の折り畳みでデータ型を変換することはできません。 それは私のためにコンパイルしていましたが、私は戻り値の型が役に立たなかったことに気付かなかった。
倍の2番目のパラメータは関数である。この場合、
(ResultType, SingleElement) => Result Type
(Seq[(String, Seq[String])], Seq[(String, MyCase)]) => Seq[(String, Seq[String])]
コンパイラは何それを知らないので、あなたのコードは唯一の二番目のパラメータの1つの入力を持っていますです。だから、それは次のようになります。
elems.foldLeft(Seq.empty[(String, Seq[MyCase])] {(zeroSeq, nextElem) =>
//zeroSeq: Seq.empty[(String, Seq[MyCase]
//nextElem: (String, MyCase)
}
EDIT:
は例えば次のようにコンパイル:
case class MyCase(x: String)
val elems: Seq[(String, MyCase)] = Seq(("Hi", MyCase("B")))
elems.foldLeft(Seq.empty[(String, Seq[MyCase])]){(z, s) =>
z
}
を私は[Tuple2](HTTP上で 'fold'機能が表示されていません。 //www.scala-lang.org/api/current/#scala.Tuple2)。 –
「MyCase」の種類は何ですか? – Brian
タイトルが誤解を招いています。 タプルのシーケンスの折り返し。 –