标题说明了一切。 foldl1foldl'都通用化为Foldable,而foldl1'则不是。这只是最近的疏忽吗?还是设计选择?

foldl1' 的类型是

foldl1' :: (a -> a -> a) -> [a] -> a

我希望它具有与foldl1相同的类型:
foldl1 :: Foldable t => (a -> a -> a) -> t a -> a

我还看到foldl1'是由 Data.List 导出的,而不是 Data.Foldable 导出的。也许这是相关的?

最佳答案

也许广义形式只是would have no good place to live吗?这背后可能还有一些性能方面的原因,但是我找不到有关它的任何信息。

关于haskell - 为什么foldl1'不能泛化为Foldable?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39341632/

10-11 17:41