title: Lazy evaluation of Dask arrays to avoid temporaries
body: <p>Coming from C++, I am used to libraries using expression templates where matrix operations like:</p>
  
  <pre><code>D = A*(B+C)
  </code></pre>
  
  <p>do not create temporaries and the element-wise</p>
  
  <pre><code>D(i,j) = A(i,j)*(B(i,j)+C(i,j))
  </code></pre>
  
  <p>operation is done inside the loop without creating temporary matrices for the operations in the right hand side.</p>
  
  <p>Is this possible with Dask arrays? Does the Dask "lazy evaluation" also do this or this term just refers to the computation on demand of the operation graph.</p>
  
  <p>Thanks.</p>