title: Compact stream expression for transposing double[][] Matrix
body: <p>I want to tranpose a <code>double[][]</code> matrix with the most compact and efficient expression possible.  Right now I have this:</p>
  
  <pre><code>public static Function&lt;double[][], double[][]&gt; transpose() {
      return (m) -&gt; {
          final int rows = m.length;
          final int columns = m[0].length;
          double[][] transpose = new double[columns][rows];
          range(0, rows).forEach(r -&gt; {
              range(0, columns).forEach(c -&gt; {
                  transpose[c][r] = m[r][c];
              });
          });
          return transpose;
      };
  }
  </code></pre>
  
  <p>Thoughts?</p>