私のコードには、次のものがあります。
type Occurrences = List[(Char, Int)]
def subtract(x: Occurrences, y: Occurrences): Occurrences = {
val yMap = y.toMap
x foldLeft (List[(Char, Int)]()) { // ERROR
case (a: List[(Char, Int)], xe: (Char, Int)) =>
if(yMap.contains(xe._1)) (xe._1 -> (xe._2 - yMap(xe._1))) :: a
else a
}
}
コンパイル時、{
つまりコードのエラーマークの直前で失敗します。エラーメッセージは次のとおりです。
拡張関数のパラメータータイプがありません無名関数の引数タイプは完全にわかっている必要があります。(SLS 8.5)予想されるタイプは次のとおりです:Int
1)どうしてそうなるのでしょうか?私の知る限り、ここでは型情報を誤解する余地はなく、インターネット上でそのような例をたくさん見つけています。どうすれば修正できますか?
Int
2)やっぱり期待されるタイプだと思っているのはなぜですか?