<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>What Happens If I... &#187; haskell</title>
	<atom:link href="http://blog.arlim.org/tag/haskell/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.arlim.org</link>
	<description>Kim Wallmark's Technical Wanderings</description>
	<lastBuildDate>Tue, 20 Jul 2010 05:45:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Mixins vs. typeclasses</title>
		<link>http://blog.arlim.org/2009/11/22/mixins-vs-typeclasses/</link>
		<comments>http://blog.arlim.org/2009/11/22/mixins-vs-typeclasses/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 03:11:01 +0000</pubDate>
		<dc:creator>Kim Wallmark</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[polymorphism]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.arlim.org/?p=78</guid>
		<description><![CDATA[This is a fragment of a discussion on polymorphism that I had in another context. I was pleased by how well this explanation came out, and wanted to put it in a more public format. I&#8217;ve thought more about the issue you raised of whether Haskell&#8217;s typeclasses are the same as Ruby&#8217;s mixins, and I [...]]]></description>
			<content:encoded><![CDATA[<p>This is a fragment of a discussion on polymorphism that I had in another context.  I was pleased by how well this explanation came out, and wanted to put it in a more public format.</p>
<blockquote><p>I&#8217;ve thought more about the issue you raised of whether Haskell&#8217;s typeclasses are the same as Ruby&#8217;s mixins, and I think my answer is a firm &#8220;sort of&#8221;.  A Ruby mixin provides a consistent API and a consistent implementation to any class it&#8217;s added to.  A Haskell typeclass provides a consistent API and an <em>individual</em> implementation to any type it&#8217;s defined for.  It&#8217;s roughly the difference between base classes and interfaces in C++/C#/Java.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.arlim.org/2009/11/22/mixins-vs-typeclasses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dream it, then cause it</title>
		<link>http://blog.arlim.org/2009/08/17/dream-it-then-cause-it/</link>
		<comments>http://blog.arlim.org/2009/08/17/dream-it-then-cause-it/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 08:31:50 +0000</pubDate>
		<dc:creator>Kim Wallmark</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[creation]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[STM]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://blog.arlim.org/?p=62</guid>
		<description><![CDATA[One of the most fun aspects of technology is the ability to just up and create something. I actually find this easiest with stringcrafts. Feeling awkward at a party? Crochet finger puppets. Microphone for the read-aloud hard to keep at a standard distance from people&#8217;s mouths? Ply and braid a cord for it. Stuff needs [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most fun aspects of technology is the ability to just up and <em>create</em> something.  I actually find this easiest with stringcrafts.  Feeling awkward at a party?  Crochet finger puppets.  Microphone for the read-aloud hard to keep at a standard distance from people&#8217;s mouths?  Ply and braid a cord for it.  Stuff needs transporting from hither to yon?  Angle bungee cords properly to keep it from sliding off the bike rack.</p>
<p>I haven&#8217;t found ways to make programming usage as casual as string usage.  Because of this, I sometimes forget that programming can be a casual solution to ideas or problems.</p>
<p>I read Simon Peyton Jones&#8217; STM essay in <em>Beautiful Code</em> last night, and worked through the code to make sure I understood.  I&#8217;d used STM in Haskell before, but for thorny networking problems that made it hard to understand how simple the magic actually is.  At some point this morning I decided to combine STM and gtk2hs (which I&#8217;ve never used beyond a single ten-line example, and which I had installed incorrectly on my box as part of an installation of leksah) to produce a graphical representation of the Dining Philosophers problem.  I now (after time off for reading, lunch, goofing off, and spending time with friends and their kittens) have a working and attractive implementation.</p>
<p>Creation is fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arlim.org/2009/08/17/dream-it-then-cause-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Euler</title>
		<link>http://blog.arlim.org/2009/06/15/project-euler/</link>
		<comments>http://blog.arlim.org/2009/06/15/project-euler/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 03:48:15 +0000</pubDate>
		<dc:creator>Kim Wallmark</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[F#]]></category>
		<category><![CDATA[fibonacci]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[project euler]]></category>

		<guid isPermaLink="false">http://blog.arlim.org/?p=46</guid>
		<description><![CDATA[I&#8217;ve known about Project Euler for a while, but I made the mistake of trying to use it as a vehicle to learn F#. Last week I started solving the problems with Haskell, which is vastly more fun. I highly recommend this method of recreation. Also, this is officially the best-ever method of Fibonacci-number computation: [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve known about <a href="http://projecteuler.net">Project Euler</a> for a while, but I made the mistake of trying to use it as a vehicle to learn F#.  Last week I started solving the problems with Haskell, which is vastly more fun.  I highly recommend this method of recreation.</p>
<p>Also, this is officially the best-ever method of Fibonacci-number computation: <code>fibs = 0 : 1 : (zipWith (\a b -> a + b) fibs $ tail fibs)</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.arlim.org/2009/06/15/project-euler/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

