Long => T
整数の範囲に適用されa..b
、タイプの結果を蓄積する関数を実装したいと考えていますT
(これは演習であり、効果的な解決策の検索ではありません)
def sum[T <: Number](f: Long => T)(a: Long, b: Long): T = {
def loop(acc: T, n: Long): T =
if (n > b)
acc
else
loop(acc + f(n), n + 1)
loop(0, a)
}
loop(0,
それは不平を言うのに欠陥があります
error: type mismatch;
found : Int(0)
required: T
loop(0, a)
理由はわかりましたが、T
ここで Numeric 型の 0 を指定するオプションは何ですか? あれば、もちろん。