<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Playing unsafe haskell</title>
	<atom:link href="http://therning.org/magnus/archives/249/feed" rel="self" type="application/rss+xml" />
	<link>http://therning.org/magnus/archives/249</link>
	<description>Incoherent mumblings</description>
	<lastBuildDate>Thu, 22 Mar 2012 15:44:10 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Is There a Such Thing as Real World Haskell? &#171; The Other Librarian</title>
		<link>http://therning.org/magnus/archives/249/comment-page-1#comment-202734</link>
		<dc:creator>Is There a Such Thing as Real World Haskell? &#171; The Other Librarian</dc:creator>
		<pubDate>Wed, 08 Sep 2010 16:54:32 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/249#comment-202734</guid>
		<description>&lt;p&gt;[...] tests should include the System.IO.Unsafe module (cheating should be allowed when you are testing your code &#8211; let the learning happen when you [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[...] tests should include the System.IO.Unsafe module (cheating should be allowed when you are testing your code &#8211; let the learning happen when you [...]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Magnus</title>
		<link>http://therning.org/magnus/archives/249/comment-page-1#comment-38598</link>
		<dc:creator>Magnus</dc:creator>
		<pubDate>Wed, 09 May 2007 09:48:04 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/249#comment-38598</guid>
		<description>&lt;p&gt;Alan,&lt;/p&gt;

&lt;p&gt;That&#039;s a very good point.  I&#039;ve found that quite a few standard functions are &quot;lazy enough&quot;, just like &lt;code&gt;getContents&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Thanks for the link to FRP!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Alan,</p>

<p>That&#8217;s a very good point.  I&#8217;ve found that quite a few standard functions are &#8220;lazy enough&#8221;, just like <code>getContents</code>.</p>

<p>Thanks for the link to FRP!</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Alan Falloon</title>
		<link>http://therning.org/magnus/archives/249/comment-page-1#comment-38015</link>
		<dc:creator>Alan Falloon</dc:creator>
		<pubDate>Mon, 07 May 2007 16:21:20 +0000</pubDate>
		<guid isPermaLink="false">http://therning.org/magnus/archives/249#comment-38015</guid>
		<description>&lt;p&gt;If your event stream is actually the characters of stdin, then getContents already hides the details of the unsafeInterleaveIO for you. As in:&lt;/p&gt;

&lt;p&gt;getContents &gt;&gt;= mapM_ yourFunc . takeWhile (/= &#039;q&#039;)&lt;/p&gt;

&lt;p&gt;However, understanding the internals makes it possible to generalize this approach to one where the event stream contains richer data (such as GUI events).&lt;/p&gt;

&lt;p&gt;Perhaps there is more that can be learned from &lt;a href=&quot;http://www.haskell.org/frp/&quot; rel=&quot;nofollow&quot;&gt;FRP&lt;/a&gt; (functional reactive programming)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>If your event stream is actually the characters of stdin, then getContents already hides the details of the unsafeInterleaveIO for you. As in:</p>

<p>getContents &gt;&gt;= mapM_ yourFunc . takeWhile (/= &#8216;q&#8217;)</p>

<p>However, understanding the internals makes it possible to generalize this approach to one where the event stream contains richer data (such as GUI events).</p>

<p>Perhaps there is more that can be learned from <a href="http://www.haskell.org/frp/" rel="nofollow">FRP</a> (functional reactive programming)</p>]]></content:encoded>
	</item>
</channel>
</rss>

