On 19/02/14 08:52, Ścisław Dercz wrote: > Hi Mateusz! > > Nice to meet someone mathematically-oriented! I'm delighted with your care > about the proper use of algebraic language and am always eager to be > corrected. However this time there is no need to do so -- it IS a monoid, > one of those you meet almost everywhere, i.e. a monoid of X->X > transformations. The identity map is it's neutral element (identity, unit) > and composition (X->X)x(X->X)->(X->X) is its action. Notice that it is not > a group since some transformations cannot be reverted -- e.g. the ones > produced with mk-remover. > The code is a bit messy and it mostly comes from a one-night hackaton, and > I will not be able to polish it until next weekend for sure. > I will translate the Polish comments. At the moment I can only provide you > with the last one, a neat mixture of Gombrowicz and Maslowska: "koniec > bomba a kto czytal ten ssie galy eurocwelom" -- the translation does not > seem trivial, perhaps something like "The end and the bomb, who read is an > euro-pansy cocksucker" -- however it might look a bit homophobic (as many > Polish curses do), perhaps you or Panicz could propose something better?
Personally I'd just remove it but it's fully up to you. I simply thought that you might have forgotten to remove some comments as some are in English and some aren't. > Greeting, > d. > > PS I just found your answer, so now I guess we do agree on the monoid > thing? Yes, I inspected it again when posting again and I can now see what you were going for. I imagine that commenting on code shouldn't have been the first thing I did after waking up. My apologies. > As of monads I do understand that the class of endofunctors with > composition and identity as unit form a monoid, no doubt, that's the > construction I mentioned at the beginning. My only gripe is that I'm unsure whether guile functions can be considered (endo-)functors and if they do, I'd love to see what kind of category Guile forms. I can't find any material exploring this. With Haskell, the deal is simple, we have Hask (which is admittedly a bit boring due to presence of ‘undefined’)[1]. > But that's the monad-monoid relation in the direction opposite to what I > was asking for. And technically I am not sure whether "the endofunctor > definition" applies to Kleisli triplets (which you probably meant) that > easily, as it seems either broader, or that the "all told" part hides some > important constraints, like that the category C you consider has enough > means (perhaps binary products or some other universal constructions) to > represent "the new type" T(A) for any A in C... But again, I am an ignorant > so please do correct me. It was only a remark that such monoids can indeed have something to do with monads, I meant nothing more. There's an interesting blog post on embedding the endofunctor monoid inside of Haskell[2] and presenting its laws, which give us the monad laws. I imagine you know this already but someone else might find it a nice read. [1]: http://www.haskell.org/haskellwiki/Hask [2]: http://blog.sigfpe.com/2008/11/from-monoids-to-monads.html -- Mateusz K.