On Sun, Mar 1, 2009 at 4:28 AM, Will Ness <span dir="ltr"><<a href="mailto:will_n48@yahoo.com">will_n48@yahoo.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">Michael Easter <codetojoy <at> <a href="http://gmail.com" target="_blank">gmail.com</a>> writes:<br></div>...<br>
After all, we can have a definition of such a value, and have it run multiple<br>
times for us, so _as definition_ it's no different than any other definition in<br>
Haskell. It's just that _its value_ can cause the system to actually perform<br>
these IO actions in some circumstances.</blockquote><div><br>But it isn't a definition. "Reference" would be better; "getChar" is a term that references a value. <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
As for terminology: we've got to have some special name for functions that are<br>
chainable by bind. Calling them actions confuses them with the real world<br>
actions performed by IO.<br>
</blockquote><div><br>Correction: special name for IO "functions" (actually "IO terms" would be better). The monad just organizes stuff, so the IO monad, as monad, is no different than any other monad. <br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
May be to call them "action functions"?<br>
<div></div></blockquote><div><br>This was a big problem for me; I find terms like "action", "computation", "function" completely misleading for IO terms/values. You might find <a href="http://syntax.wikidot.com/blog:5">"Computation" considered harmful. "Value" not so hot either</a> useful; see also the comment "Another try at the key sentence". There are a few other articles on the blog that address this terminology problem.<br>
</div></div><br>-gregg<br>