データの分析をする際には配列やベクトルは欠かせないデータ構造です。 大体どの言語にも大体配列は用意されていて、そこにサンプルのデータ等を入れて統計量を計算したり関数に渡して回帰をしたりするわけです。 ベクトルという単位でデータの塊を扱うものの、実際のアルゴリズムではベクトル内の要素一つひとつを見ていって何か処理をしたり計算をすることが多いでしょう。 その際、命令型言語ではforループを陽に使って要素にアクセスすることになります。 簡単な例を見てみましょう。ベクトルv1とv2の内積を求める関数をC言語で書くと以下のようになります。 function dot(double* v1, double* v2, size_t n) { double s = 0.0; for (int i = 0; i < n; i++) { s += v1[i] * v2[i]; } return s; } 特に難
![HaskellのFusionがあれば速度と抽象化を両立できる - りんごがでている](https://cdn-ak-scissors.b.st-hatena.com/image/square/7714e902a57fa701972d522c965958c96d0298d9/height=288;version=1;width=512/https%3A%2F%2Fcdn.image.st-hatena.com%2Fimage%2Fscale%2F96325e8395d8d12f36cc2e9c6675ce911ade5c36%2Fbackend%3Dimagemagick%3Bversion%3D1%3Bwidth%3D1300%2Fhttp%253A%252F%252Fcdn-ak.f.st-hatena.com%252Fimages%252Ffotolife%252Fb%252Fbicycle1885%252F20140610%252F20140610232956.png)