tag:blogger.com,1999:blog-33049444.post5187937175101266004..comments2023-08-13T06:12:47.931-04:00Comments on Bloggy Badger: I understand comonadsgelisamhttp://www.blogger.com/profile/10619127479176568208noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-33049444.post-60870052294380161862014-04-16T04:26:38.480-04:002014-04-16T04:26:38.480-04:00I found the zipper-based cellular automaton exampl...I found the zipper-based cellular automaton example to be a nice introduction to comonads too, but it's important to keep the examples separate from the abstract idea. If we don't, we risk missing some aspects and assuming others; for example, I've seen "monad tutorials" which just describe Maybe, without mentioning monads (or functors, map, join, return, bind, etc.) at all!Warbohttps://www.blogger.com/profile/11167936627543971536noreply@blogger.comtag:blogger.com,1999:blog-33049444.post-60815610348719129212013-06-06T12:48:44.809-04:002013-06-06T12:48:44.809-04:00In short, monads offer special operations, and mon...In short, monads offer special operations, and monad transformers combine monads so that you can use more kinds of special operations in the same computation.<br /><br />Comonads only offer special operations in so far as they define the environment in which a cellular automaton can run, so they offer operations to query the local topology and the values of the local neighbors.<br /><br />Finallygelisamhttps://www.blogger.com/profile/10619127479176568208noreply@blogger.comtag:blogger.com,1999:blog-33049444.post-2847794615208893432013-06-06T12:47:55.696-04:002013-06-06T12:47:55.696-04:00Many years later, I finally understand Monad trans...Many years later, I finally understand Monad transformers and Comonad transformers well enough to give a proper answer to all of the above.<br /><br />First of all, T.Q.: Comonads are good for executing cellular automaton, because they execute a computation uniformly at every cell, with each operation expressed relative to the current cell.<br /><br />Second, anonymous "zipper" guy: yesgelisamhttps://www.blogger.com/profile/10619127479176568208noreply@blogger.comtag:blogger.com,1999:blog-33049444.post-81910219913070251502008-04-23T17:30:00.000-04:002008-04-23T17:30:00.000-04:00Anonymous brow, monads and comonads are very gener...Anonymous brow, <BR/><BR/>monads and comonads are very generic tools, my Array example and sigfpe's similar Pointer example are only one way to use them.<BR/><BR/>In the world of Array-like type constructors, special monadic operations can return an array of values, whereas special <I>co</I>monadic operations can peek at an array of values. It just happens that for Arrays, a natural gelisamhttps://www.blogger.com/profile/10619127479176568208noreply@blogger.comtag:blogger.com,1999:blog-33049444.post-51179823059847936012008-04-22T17:55:00.000-04:002008-04-22T17:55:00.000-04:00The literate haskell on this page renders incorrec...The literate haskell on this page renders incorrectly in Opera 9.27.<BR/><BR/>I'm not sure I understand Comonads... Am I to consider Monads for SISD computations while Comonads are for SIMD? Monad transformers would then be for MISD computations while MIMD is handled by Comonad transformers?<BR/><BR/>My brow is very furrowed.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-33049444.post-15371560088499963242008-03-10T14:39:00.000-04:002008-03-10T14:39:00.000-04:00OMG I was linked by a long time blog hero of mine...OMG I was <A HREF="http://sigfpe.blogspot.com/2008/03/comonadic-arrays.html" REL="nofollow">linked </A> by a long time blog hero of mine, sigfpe! I'm glad somebody decided to clarify my example, I had no clue I was being cryptic.<BR/><BR/>Hello, fellow sigfpe fans!gelisamhttps://www.blogger.com/profile/10619127479176568208noreply@blogger.comtag:blogger.com,1999:blog-33049444.post-4798394575773091362007-10-29T14:10:00.000-04:002007-10-29T14:10:00.000-04:00You should look into zippers for interesting appli...You should look into zippers for interesting applications of comonads.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-33049444.post-39055040303860742232007-05-21T17:09:00.000-04:002007-05-21T17:09:00.000-04:00Comonads are good conversation openers, and with e...Comonads are good conversation openers, and with enough practice they can be a great party trick.<BR/><BR/>Seriously, I haven't had the occasion to put my new understanding to use yet, and I don't think it will happen soon.<BR/><BR/>I do have a contrived example, though. With an Array comonad, you could run a computation over several values in parallel. At a few key points in the computation, onegelisamhttps://www.blogger.com/profile/10619127479176568208noreply@blogger.comtag:blogger.com,1999:blog-33049444.post-57334817409279104432007-05-08T06:16:00.000-04:002007-05-08T06:16:00.000-04:00Hmm, surely there has to be more to say than this....Hmm, surely there has to be more to say than this. What is an example of something one would use a Comonad for?T. Q.https://www.blogger.com/profile/15887178526514454823noreply@blogger.com