title: Curried update method
body: <p>I'm trying to have curried apply and update methods like this:</p>
  
  <pre><code>def apply(i: Int)(j: Int) = matrix(i)(j)
  def update(i: Int, j: Int, value: Int) = 
    new Matrix(n, m, (x, y) =&gt; if ((i,j) == (x,y)) value else matrix(x)(y))
  </code></pre>
  
  <p>Apply method works correctly, but update method complains:</p>
  
  <pre><code>scala&gt; matrix(2)(1) = 1
  &lt;console&gt;: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
  </code></pre>
  
  <p>Calling directly <code>update(2)(1)(1)</code> works, so it is a conversion to update method that doesn't work properly. Where is my mistake?</p>