質問: haskellの練習で数列の問題を解こうとして、(!!)を使いたいことがありました。そのとき、ふと、疑問に思ったのですが、なぜhaskellではリストのインデックスが0から始まる、と考えるのでしょうか? takeやdropなどを合わせて考えると、1から数えるとした方が、なんとなく、ですが良いような気がするのです。 おそらく、意味があってのことなのだろうと思いますが、なぜなのでしょうか?
回答: Haskell にかかわらず多くのプログラミング言語ではリストや配列のインデックスは 0 から始める習慣があります。これには歴史的背景や、メモリアクセスに関する最適化のしやすさなどが理由として挙げられることが多いです。 また、私の知る限り、「Haskell では〇〇だから 0 から始めなければいけない」といった、Haskell 個別の理由はありません。単にデザインの問題だと思います。