<?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>Sadek Drobi's Blog &#187; Erlang</title>
	<atom:link href="http://sadekdrobi.com/tag/erlang/feed/" rel="self" type="application/rss+xml" />
	<link>http://sadekdrobi.com</link>
	<description>Sadek Drobi</description>
	<lastBuildDate>Wed, 06 Jan 2010 23:11:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Side Effects</title>
		<link>http://sadekdrobi.com/2009/11/06/683/</link>
		<comments>http://sadekdrobi.com/2009/11/06/683/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 16:11:41 +0000</pubDate>
		<dc:creator>Sadache</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Erlang]]></category>
		<category><![CDATA[fp]]></category>
		<category><![CDATA[side effect free]]></category>

		<guid isPermaLink="false">http://sadekdrobi.com/?p=683</guid>
		<description><![CDATA[Most of my Erlang programming is side effect free. I think I probably write very unusual Erlang programs that look a lot like Haskell ones. Now and then, I do write side effecting code. For example, when I use the random number generation libraries that comes with Erlang, it has a side effecting interface. It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Most of my Erlang programming is side effect free. I think I probably write very unusual Erlang programs that look a lot like Haskell ones. Now and then, I do write side effecting code. For example, when I use the random number generation libraries that comes with Erlang, it has a side effecting interface. It&#8217;s very tempting when you are building something on top of the library with a stateful interface to build code on top of that that also has a stateful interface. </p>
<p>That&#8217;s what I did the first time I tried to use it. That has caused me so much trouble. I think every single bug that I spent hours trying to track down has been caused by a side effect. In a way, I&#8217;ve been programming Haskell for so many years, that I&#8217;d forgotten just how devastating side effects are and just how difficult they make debugging. I&#8217;ve learnt that lesson again and nowadays, if I want to use a stateful library, I usually build a side effect free interface on top of it, so that I can then use it safely in the rest of my code.</p></blockquote>
<p>from my <a href="http://www.infoq.com/interviews/Erlang-Haskell-John-Hughes">interview with John Hughes</a> at <a href="http://www.erlang-factory.com/">Erlang Factory</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://sadekdrobi.com/2009/11/06/683/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
