<div dir="ltr"><font color="#333333"><font><font face="trebuchet ms,sans-serif">Hi David,</font></font></font><div><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br></font></font></font></div><div style>
<font color="#333333"><font><font face="trebuchet ms,sans-serif">Yours is more precise. f should output (ValueConstructor value) instead of (Monad value) :)</font></font></font></div><div style><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br>
</font></font></font></div><div style><font color="#333333"><font><font face="trebuchet ms,sans-serif">--Trung</font></font></font></div><div style><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br></font></font></font></div>
<div style><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br></font></font></font></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2012/12/20 David McBride <span dir="ltr"><<a href="mailto:toad3k@gmail.com" target="_blank">toad3k@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The way I like to reason about these things<br>Prelude> :t (>>=)<div class="im"><br>(>>=) :: Monad m => m a -> (a -> m b) -> m b<br>
<br></div>Since the Monad m in this definition is Maybe, I'll just substitute it in like so:<br>
Maybe a -> (a -> Maybe b) -> Maybe b<br><br>Then you notice that f is not (a -> b), it is (a -> Maybe b).<br><br><div class="gmail_quote"><div><div class="h5">On Thu, Dec 20, 2012 at 9:07 AM, Trung Quang Nguyen <span dir="ltr"><<a href="mailto:trungnq97@gmail.com" target="_blank">trungnq97@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><font color="#333333"><font><font face="trebuchet ms,sans-serif">Hi all,</font></font></font><div>
<font color="#333333"><font><font face="trebuchet ms,sans-serif"><br>
</font></font></font></div><div><font color="#333333"><font><font face="trebuchet ms,sans-serif">I saw this</font></font></font></div>
<div><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br></font></font></font></div><div><ol start="1" style="padding:0px;border:none;outline:0px;font-size:14px;vertical-align:baseline;background-color:rgb(0,0,0);color:rgb(92,92,92);font-family:Consolas,monospace;line-height:25px;margin:0px 0px 1px!important;list-style:none!important">
<li style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(149,228,84);background-color:inherit;font-weight:bold">instance</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit"> </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Monad</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit"> </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Maybe</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit"> </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(149,228,84);background-color:inherit;font-weight:bold">where</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit"> </span></span></li>
<li style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit"> return x<span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> = </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Just</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit"> x </span></span></li>
<li style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit"> <span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Nothing</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> >>= </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">f</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> = </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Nothing</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit"> </span></span></li>
<li style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit"> <span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Just</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit"> x</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> >>= </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">f </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> = </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">f x </span></span></li>
<li style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit"> fail _<span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> = </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Nothing</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit"> </span></span></li>
</ol><div><br></div><div>I am wondering about the implementation of function (>>=). Why don't it be <b>Just x >>= f = Just (f x)</b>?</div><div><br></div><div>Any body knows about this?</div><span><font color="#888888"><div>
<div><br></div></div><div>--Trung</div><div><br></div>
</font></span></div></div>
<br></div></div>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><b>Trung Nguyen</b><div>Mobile: +45 50 11 10 63<br><div>LinkedIn: <a href="http://www.linkedin.com/pub/trung-nguyen/36/a44/187" target="_blank">http://www.linkedin.com/pub/trung-nguyen/36/a44/187</a></div>
<div>View my blog at <a href="http://www.onextrabit.com/" target="_blank">http://www.onextrabit.com/</a></div><div><br></div></div>
</div>