5
根据定义或一个二元组,二元运算符必须是关联的,例如, A op (B op C) == (A op B) op C
。Haskell - 实现Monoid如果运算符没有关联会发生什么
的base mconcat
definition在Haskell是:
mconcat = foldr mappend mempty
因为我知道mconcat
功能的实现细节,就什么不好,从定义和使用伪造的类群,其中功能不关联发生的呢?例如定义减法或除法的实例。
这可能有用,或者我错过了这一点?
我认为这比崩溃更糟糕。但是我想如果有人希望坚持“a-(b-c)==(a-b)-c”应该成立,那么就没有办法... – 2014-11-22 16:45:35