次のような適用および更新メソッドをカリー化しようとしています。
def apply(i: Int)(j: Int) = matrix(i)(j)
def update(i: Int, j: Int, value: Int) =
new Matrix(n, m, (x, y) => if ((i,j) == (x,y)) value else matrix(x)(y))
Apply メソッドは正しく動作しますが、update メソッドは不平を言います:
scala> matrix(2)(1) = 1
<console>:16: error: missing arguments for method apply in class Matrix;
follow this method with `_' if you want to treat it as a partially applied function
matrix(2)(1) = 1
直接呼び出すとupdate(2)(1)(1)
動作するので、正しく動作しない update メソッドへの変換です。私の間違いはどこですか?