foldMap 连体

foldMap Conjoined

我正在尝试使用给定的原型在 Haskell 中创建此函数:

The function "foldMap Conjoined" over a list of functions returning Bool values
    should produce a function over the same input type that returns True if all of
    the functions in the list return True for the given input, and False if at
    least one of the functions returns False for the given input. (If the list is
    empty, then all of the zero functions in the list return True.)> 

newtype Conjoined a = Conjoined { getConjoined :: a -> Bool }
       deriving Generic
    
instance Monoid (Conjoined a) where
       f <> g = Conjoined (\x -> True)

f <> g 行是我这部分代码的开始。使用该行,该函数通过了关联性测试,但没有产生正确的结果

如果第一个和第二个函数 return 为真,您可以创建一个 return 为真的新函数,方法是使用 (&&)。然后 mempty 是一个 [Join] 函数,它对所有输入都为真: 资料来源:计算器。com/q/62982832/67579

采用相同的逻辑并将其应用于此 'conjoined' 幺半群

   "instance Monoid (Conjoined a) where
        Conjoined f <> Conjoined g = Conjoined (\x -> f x && g x)
        mempty = Conjoined (const True)"