gpt4 book ai didi

haskell - 当 foldr 与幺半群没有任何关系时, foldMap 怎么能做和 foldr 一样的事情呢?

转载 作者:行者123 更新时间:2023-12-04 11:49:14 26 4
gpt4 key购买 nike

foldr foldMap 据我了解,可以用来定义彼此。但这怎么可能,因为后者使用幺半群,而前者却没有?我们有任何保证 foldr 的东西吗?可以有一个幺半群吗?

最佳答案

foldr :: (a -> b -> b) -> b -> [a] -> b

请注意 a -> b -> ba -> (b -> b) .功能 b -> b在合成下形成一个幺半群。

请注意这类似于
foldMap :: (..omitted..) => (a -> m) -> f a -> m

唯一的区别是 foldMap 不使用 b 类型的“零”参数。的 fold并返回 m , 其中 foldr将是 b->b .现在只需将一个应用到另一个,您就恢复了 foldr来自 foldMap .

关于haskell - 当 foldr 与幺半群没有任何关系时, foldMap 怎么能做和 foldr 一样的事情呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37513123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com