Haskellでは,リストを基本的なデータ構造として様々な用途に使います。一方,Cなどの命令型の言語では,配列(Array)を基本的なデータ構造として用います。 この違いはどこから生じているのでしょうか? Haskellでリストを使う場合と配列を使う場合にはどのような違いがあるのでしょうか? 今回はこうした切り口で配列について考えていきたいと思います。 リストと配列の違い 配列には様々な実装方法があり,どのような実装を採用するかによって細かい性質が異なります。ただ,どのような実装であっても,配列には共通した性質があります。先頭からの逐次的なアクセスにもランダムな要素へのアクセスにも同じように適しているという点です。 リストは再帰的な定義になっているため,当然,逐次的なアクセスには適しています。しかし,参照(look-up)や更新(update)などの操作で必要とされる,ランダムなアクセスに