Haskell: 述語の連結
2つの述語p, qに対して「p(x)またはq(x)である」という述語を作る方法で、モノイドを使う方法。
predOr p q = getAny . (Any . p <> Any . q)
「p(x)かつq(x)である」ならこう、
predAnd p q = getAny . (All . p <> All . q)
ここでは (a -> Any) とか (a -> All) をモノイドと見て連結 (<>) を使っている。
2つの述語p, qに対して「p(x)またはq(x)である」という述語を作る方法で、モノイドを使う方法。
predOr p q = getAny . (Any . p <> Any . q)
「p(x)かつq(x)である」ならこう、
predAnd p q = getAny . (All . p <> All . q)
ここでは (a -> Any) とか (a -> All) をモノイドと見て連結 (<>) を使っている。