<br><font size=2 face="sans-serif">It took me forever to get comfortable
with monads.</font>
<br>
<br><font size=2 face="sans-serif">I think it helps if you've seen continuations,
or done FP before, or a variety of things that build familiarity.</font>
<br>
<br><font size=2 face="sans-serif">But probably the only thing that I think
will work for the masses of plodders (there are always a few stars to crash
the curve) is a desire to learn and tons of practice.</font>
<br>
<br><font size=2 face="sans-serif">I wouldn't worry so much about the ideal
way to introduce the material.</font>
<br>
<br><font size=2 face="sans-serif">Oh, one other thing. You learn monads
when you need them. You need IO right away... well, after you tired of
playing with pure functions in the ghci sandbox.</font>
<br>
<br><font size=2 face="sans-serif">my 2c.</font>
<br>
<br><font size=2 face="sans-serif">t.</font>
<br>
<br>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>&quot;Dan Piponi&quot;
&lt;dpiponi@gmail.com&gt;</b> </font>
<br><font size=1 face="sans-serif">Sent by: haskell-cafe-bounces@haskell.org</font>
<p><font size=1 face="sans-serif">12/03/2007 07:19 PM</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">haskell-cafe@haskell.org</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: [Haskell-cafe] Re: do</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>On Dec 3, 2007 3:54 PM, Ben Franksen &lt;ben.franksen@online.de&gt;
wrote:<br>
<br>
&gt; I don't buy this. As has been noted by others before, IO is a very
special<br>
&gt; case, in that it can't be defined in Haskell itself, and there is
no<br>
&gt; evaluation function runIO :: IO a -&gt; a.<br>
<br>
I'm not sure what a function of type m a -&gt; a has to do with the<br>
concept of a monad. And I don't really see what the problem is with<br>
the IO monad not being definable in (pure) Haskell. IO exposes the<br>
same interface as every other Monad, and you need to use that<br>
interface to get visible results. So people have to learn it whatever.<br>
And the whole point of the Monad is that it's an interface, not a<br>
specific implementation.<br>
<br>
&gt; I'd rather use a simple example like Maybe (modeling failure as an
effect).<br>
<br>
And I'd like to see more people getting off the ground doing<br>
interesting stuff with Haskell before their attention spans for<br>
pointless-seeming new stuff run out. I'm not talking about the<br>
smartest people in computer science courses here. I'm talking about<br>
the millions of people writing everyday Python and Ruby scripts, say,<br>
who might benefit from a more expressive, type-safe, well-thought out,<br>
fast and compiled language.<br>
--<br>
Dan<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
Haskell-Cafe@haskell.org<br>
http://www.haskell.org/mailman/listinfo/haskell-cafe<br>
</font></tt>
<br>
<br>
<span style="font-family:sans-serif,helvetica; font-size:10pt; color:#000000">---</span><br>
<br>
<span style="font-family:sans-serif,helvetica; font-size:10pt; color:#000000">This e-mail may contain confidential and/or privileged information. If you </span><br>
<span style="font-family:sans-serif,helvetica; font-size:10pt; color:#000000">are not the intended recipient (or have received this e-mail in error) </span><br>
<span style="font-family:sans-serif,helvetica; font-size:10pt; color:#000000">please notify the sender immediately and destroy this e-mail. Any </span><br>
<span style="font-family:sans-serif,helvetica; font-size:10pt; color:#000000">unauthorized copying, disclosure or distribution of the material in this </span><br>
<span style="font-family:sans-serif,helvetica; font-size:10pt; color:#000000">e-mail is strictly forbidden.</span><br>