我正在学习 Haskell,类型类似乎是制作类型安全的多态函数的强大方法。但是很多 Haskell Prelude 函数并没有使用它们。进一步来说:
大多数列表函数不适用于其他数据结构(例如,
foldr
仅length
针对列表实现,不能用于数组)。除非您使用,否则类似
Data.ByteString
的模块无法使用,import qualified
因为它们包含与 Prelude 函数同名的函数。
如果标准库使用带有类型类的泛型函数,这两个问题似乎都会消失(如果我完全不理解这个,请告诉我)。
我有两个问题:
Prelude 是这样的有技术或设计原因,还是仅仅是历史原因?
环顾四周,似乎有几个库(
Data.Foldable
如果我没记错的话,比如 Scrap Your Boilerplate)用通用替代品替换标准 Prelude 函数。是否有计划将这些想法融入到 Haskell 的未来版本中?