私はいくつかの Scala を選択しようとしていますが、興味深い機能の中で、ジェネリック (入力型) を持つ関数を見つけましたか? 特に便利です。ただし、次のコードを試してみると、
def recFunc[A](xs: List[A], base : () => A) : A = if (xs.isEmpty) base() else xs.head + recFunc(xs.tail, base)
以下に書かれた迷惑なエラーが表示されます。
<console>:8: error: type mismatch;
found : List[A]
required: List[String]
def recFunc[A](xs: List[A], base : () => A) : A = if (xs.isEmpty) base() else xs.head + recFunc(xs.tail.asInstanceOf[List[A]], base)
いったい、型推論システムは A == String を思いつき、この例外をスローします。この構造の使い方を完全に間違えたのでしょうか?
どうも