2017-04-01 20 views

答えて

2

あなたはそれが好きですか:

val a: Sum[Int, Int] = Left(5) 
    val l = Sum.fold(a)(l => l * l)(l => l * l) 

OR

val l = Sum.fold(Left[Int, Int](5))(l => l * l)(l => l * l) 

あなたは両方LeftRightAB型を推測できるコンパイラのSumABタイプを指定する必要があります。あなたのコードスニペットとして

で時間をコンパイルし、あなたの第三高次機能パラメータのよう、あなただけの、コンパイラがB型を推論することはできません、BタイプなしIntLeftAタイプを指定していますコンパイラはここで失敗します。

0

あなただけright機能のためにBに明示的な型を与える必要がある:

val l = Sum.fold(Left(5))(a => a * a)((b: Int) => b * b) 
関連する問題