标题说明了一切。 foldl1
和foldl'
都通用化为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/