BigDecimal の List に対して短い関数 sum-function を書きたいと思い、次のようにしてみました:
def sum(xs: List[BigDecimal]): BigDecimal = (0 /: xs) (_ + _)
しかし、私はこのエラーメッセージを受け取りました:
<console>:7: error: overloaded method value + with alternatives:
(x: Int)Int <and>
(x: Char)Int <and>
(x: Short)Int <and>
(x: Byte)Int
cannot be applied to (BigDecimal)
def sum(xs: List[BigDecimal]): BigDecimal = (0 /: xs) (_ + _)
^
代わりに Int を使用すると、その関数が機能します。これは、BigDecimal の演算子のオーバーロードが+
. BigDecimal の適切な回避策は何ですか?