tag:blogger.com,1999:blog-178174920347765771.post8138648827336748223..comments2023-10-30T09:20:21.742-07:00Comments on One Div Zero: Monads are Elephants Part 1James Iryhttp://www.blogger.com/profile/02835376424060382389noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-178174920347765771.post-25823034337343999002014-12-16T13:38:28.993-08:002014-12-16T13:38:28.993-08:00Its heavy stuff man, very good tutorial.Its heavy stuff man, very good tutorial.Lambda Poolhttps://www.youtube.com/channel/UC2fqgG2do0SWE7FacJa9ZnAnoreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-1526389059099455252013-09-27T06:45:12.299-07:002013-09-27T06:45:12.299-07:00what exactly does "monad" term mean ?? i...what exactly does "monad" term mean ?? is it another kind of an interface that must implement abstract methods?? In short , if some one asked what is "monad" , what would be the shortest answer?Nishannoreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-28039889981809606292013-02-04T14:48:44.919-08:002013-02-04T14:48:44.919-08:00After 5 years this is still an awesome article. Th...After 5 years this is still an awesome article. Thank youErik Westranoreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-28041201695644251472010-04-22T10:00:13.192-07:002010-04-22T10:00:13.192-07:00That was so much easier to understand than the des...That was so much easier to understand than the description of monads on the scala website. Thank you!Dustin Ted Whitneyhttps://www.blogger.com/profile/17414601526967838823noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-19167171763126362522010-04-10T12:40:21.284-07:002010-04-10T12:40:21.284-07:00I like the artivle, monads seem strange to me. I h...I like the artivle, monads seem strange to me. I have no idea what it is (like you say) but I want to learn more for some reason. Love the way you motivate the subject, computer science doesnt have to be dry and dusty, i didn't realize when you got into the technical stuff :)Felixhttps://www.blogger.com/profile/11019662724931306285noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-62810932211842424102009-05-12T15:14:00.000-07:002009-05-12T15:14:00.000-07:00many thanks for your article. i do believe it is h...many thanks for your article. i do believe it is helping.Raoul Dukehttps://www.blogger.com/profile/07354740962526930549noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-7470841671424987592007-10-19T19:23:00.000-07:002007-10-19T19:23:00.000-07:00LOL. Fixed.LOL. Fixed.James Iryhttps://www.blogger.com/profile/02835376424060382389noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-86763538908826961112007-10-19T10:09:00.000-07:002007-10-19T10:09:00.000-07:00The code in this suggests that 1.toString gives "o...The code in this suggests that 1.toString gives "one", when it gives "1".jRicky Clarksonhttps://www.blogger.com/profile/13845104548520132930noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-55260389935807294422007-10-03T05:53:00.000-07:002007-10-03T05:53:00.000-07:00I've made some updates to this article. First, I ...I've made some updates to this article. First, I had planned on doing both "for" and the laws in one article but they each deserve their own treatment plus I've added a plan for a 4th installment. Second, I fixed the embarrassing and repeated use of "outter" instead of "outer." :) Third, I've posted a forward link to part 2.James Iryhttps://www.blogger.com/profile/02835376424060382389noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-56139770026014332822007-09-28T16:26:00.000-07:002007-09-28T16:26:00.000-07:00Xanana,Haskellers and mathemeticians both like to ...Xanana,<BR/><BR/>Haskellers and mathemeticians both like to use short variable names. In this case the names are meant to be a reminder of the types that map expects.<BR/><BR/>Specifically, for "map f m", f is a function of the appropriate type and m is an instance of a monad. Technically, m could be any functor, but "map f f" wouldn't be very helpful in most cases. :-)James Iryhttps://www.blogger.com/profile/02835376424060382389noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-52039503540309013352007-09-28T16:18:00.000-07:002007-09-28T16:18:00.000-07:00chuck,You're mostly right that once you "get" mona...chuck,<BR/><BR/>You're mostly right that once you "get" monads then most of the other analogies fall away. So my answer is another analogy ;-) Monad analogies are the scaffolding you use to create a tall building. Once the building can stand on it's own you don't need the scaffolding any more.<BR/><BR/>I think the exception is container. I think it still has some applicability even when you James Iryhttps://www.blogger.com/profile/02835376424060382389noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-39087610783466414062007-09-28T16:13:00.000-07:002007-09-28T16:13:00.000-07:00Anonymous,"Monads as Computations" is the more pow...Anonymous,<BR/><BR/>"Monads as Computations" is the more powerful understanding and I plan to work my articles in that direction. Unfortunately, it's not a very natural fit for collection classes in a (mostly) strict language like Scala. For them the container approach I outline works better.<BR/><BR/>Still, I'll give it a shot. If you can see List as a computation, then you might see James Iryhttps://www.blogger.com/profile/02835376424060382389noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-26365124804221882022007-09-28T15:53:00.000-07:002007-09-28T15:53:00.000-07:00Gang, sorry I've been away from the blog for awhil...Gang, sorry I've been away from the blog for awhile and so I'm a bit behind on my comments. <BR/><BR/>Adriaan, thanks for the links. I don't want to get too far down the path of Scala's type system. Trying to explain higher kinded types while explaining monads might cause sensory overload.<BR/><BR/>Lionel, thanks for the compliment. I do agree that Scala is powerful, but it's possible to James Iryhttps://www.blogger.com/profile/02835376424060382389noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-90389372395187909592007-09-27T02:37:00.000-07:002007-09-27T02:37:00.000-07:00In the table comparing theory, haskell & scala;map...In the table comparing theory, haskell & scala;<BR/><BR/>map f m<BR/><BR/>So m stands for "monad" ?Xanana Gusmaohttps://www.blogger.com/profile/11855273228730031844noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-34153112058925888032007-09-26T11:05:00.000-07:002007-09-26T11:05:00.000-07:00If the blind men had said that an elephant had leg...If the blind men had said that an elephant had legs like tree trunks or a nose like a snake, that would be fine. The problem is that they said it the whole elephant was like a tree trunk or a snake or a fan. So when you're told to look out for a <BR/>"trunk/snake/fan/broom feeling thing", you wouldn't know where to begin. And that's where the analogies of Monads as spacesuits, assembly lines, Chuck Adamshttps://www.blogger.com/profile/12403744972060658849noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-38657499021583158112007-09-23T18:18:00.000-07:002007-09-23T18:18:00.000-07:00I understand Monads as Computations, but understan...I understand Monads as Computations, but understanding Monads as Containers is more difficult. Most articles on the topic discuss List as a Monad which is easy to understand but how does this result extend to other "collections" (for example, Tree etc)?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-38828236094977927692007-09-22T07:00:00.000-07:002007-09-22T07:00:00.000-07:00Excellent explanation that doesn't need you to alr...Excellent explanation that doesn't need you to already know the answer to make sense of the text.<BR/>I wait eagerly for the next part.<BR/>Beside a good proof of scale power and expressiveness.Unknownhttps://www.blogger.com/profile/14963043736528936298noreply@blogger.comtag:blogger.com,1999:blog-178174920347765771.post-2680947572224857362007-09-18T23:35:00.000-07:002007-09-18T23:35:00.000-07:00Type constructor polymorphism, a fairly new additi...<A HREF="http://www.cs.kuleuven.be/~adriaan/?q=tcpolympool" REL="nofollow">Type constructor polymorphism</A>, a fairly new addition to Scala (in 2.5) now supports <A HREF="http://kinded-scala.googlecode.com/svn/trunk/examples/src/scala/examples/tcpoly/monads/Monads.scala" REL="nofollow">defining monads</A> more conveniently. For a real life example, see my first take on a <A HREF="http://Adriaan Moorshttps://www.blogger.com/profile/11831109925934177120noreply@blogger.com