定義またはモノイドによれば、二項演算子は結合的でなければなりませんA op (B op C) == (A op B) op C
。
haskellの基本mconcat
定義は次のとおりです。
mconcat = foldr mappend mempty
関数の実装の詳細を知っているのでmconcat
、関数が結合されていない偽のモノイドを定義して使用すると、何か悪いことが起こりますか? たとえば、減算または除算のインスタンスを定義するように。
これは役に立ちますか、それとも要点を逃していますか?