13 Nov 17:52
Re: Could someone teach me why we use Data.Monoid?
Andrew Coppin <andrewcoppin <at> btinternet.com>
2009-11-13 16:52:34 GMT
2009-11-13 16:52:34 GMT
Stephen Tetley wrote: > 2009/11/13 Rafael Gustavo da Cunha Pereira Pinto <RafaelGCPP.Linux <at> gmail.com>: > >> Monoid is the category of all types that have a empty value and an append >> operation. >> >> > > Or more generally a neutral element and an associative operation: > > The multiplication monoid (1,*) > > 9*1*1*1 = 9 > > 1 is neutral but you might be hard pressed to consider it _empty_. > This is the thing. If we had a class specifically for containers, that could be useful. If we had a class specifically for algebras, that could be useful. But a class that represents "any possible thing that can technically be considered a monoid" seems so absurdly general as to be almost useless. If you don't know what an operator *does*, being able to abstract over it isn't especially helpful... ...in my humble opinion. (Which, obviously, nobody else will agree with.)
RSS Feed