小编Thu*_*ird的帖子

新类型的 Haskell Monoid 实例问题

我正在尝试定义一个实例:

newtype Join a = Join { getJoin :: a -> Bool }
   deriving Generic

instance Monoid (Join a) where
   f <> g = ???
   mempty = ???
Run Code Online (Sandbox Code Playgroud)

目标是如果列表中的所有函数都为真,则函数 foldMap Join 应该返回 True,如果所有函数都不为真,则返回 false。

我了解 foldMap 以及 Monoid 的 Sum 和 Product 实例,但对于编写 Monoid 的 newtype 实例我还是很陌生的。任何在正确方向上的帮助将不胜感激。谢谢你。

haskell monoids deriving newtype derivingvia

7
推荐指数
1
解决办法
286
查看次数

标签 统计

deriving ×1

derivingvia ×1

haskell ×1

monoids ×1

newtype ×1