私はHaskellを学んでいるところですが、型クラスは型セーフなポリモーフィック関数を作成するための強力な方法のようです。しかし、HaskellPrelude関数の多くはそれらを使用していません。すなわち:
ほとんどのリスト関数は他のデータ構造では機能しません(たとえば、
foldr
リストlength
に対してのみ実装され、配列では使用できません)。のようなモジュールは、プレリュード関数と同じ名前の関数が含まれているため、
Data.ByteString
使用しない限り使用できません。import qualified
標準ライブラリが型クラスを持つジェネリック関数を使用した場合、これらの問題は両方とも解消されるようです(これで完全にベースから外れているかどうかを知らせてください)。
2つの質問があります:
プレリュードがこのようなものであるという技術的または設計上の理由はありますか、それとも歴史的な理由だけですか?
周りを見回すと、標準のPrelude関数を一般的な代替関数に置き換えるライブラリがいくつかあるようです(
Data.Foldable
私が間違っていない場合は、Scrap Your Boilerplateなど)。これらのアイデアをHaskellの将来のバージョンに組み込む計画はありますか?