>>177
大きい行列を扱うのなら、C言語でもHaskellでも他の言語でも、
普通はLAPACKなどの行列専用ライブラリを使うのでは?
HaskellからLAPACKを使うのならhmatrixというライブラリがある。

行列とは意味合いが異なるけど、Haskellで配列を効率よく扱う方法は他にもある。
たとえばrepaというライブラリ。
これは、配列に対するいくつもの演算(2つの配列の要素同士を加算したり、畳み込みをしたり)を、
内部で合成してひとつの一連の計算にして実行する。
つまり、計算用の中間バッファを極力作らないように自動的に処理してくれるから、
こと演算においては「メモリを使い回す」ということをプログラマ側が考えなくても良い。
(repa で2次元配列を行列とみなして、行列同士の積を演算することもできる)