<?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"
	>
<channel>
	<title>Comments on: Errrr&#8230;</title>
	<atom:link href="http://blog.dowski.com/2007/07/31/errrr/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dowski.com/2007/07/31/errrr/</link>
	<description>Unfortunately, Christian had a Thwart, and the Magpie stayed in play.</description>
	<pubDate>Wed, 20 Aug 2008 03:04:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: gooli</title>
		<link>http://blog.dowski.com/2007/07/31/errrr/#comment-111989</link>
		<dc:creator>gooli</dc:creator>
		<pubDate>Tue, 21 Aug 2007 19:15:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dowski.com/2007/07/31/errrr/#comment-111989</guid>
		<description>We've all been so tainted by procedural and object oriented programming that we find it very hard to think in different terms. While algorithmic (procedural and object oriented) languages work in terms of changing the state of places in memory we refer to as variables, functional languages work differently. Completely differently. In a pure functional language there is no notion of a variable (although the term is sometimes still used), there is only a notion of a bound name - a name that represents a value.

That sounds weird as hell at first but it can be extremely useful in certain situations like concurrent programming in which Erlang excels. Think about it. If you don't have variables, at least not ones that can change their values, you don't need locks. At all! There is nothing TO lock. It's not only that two threads can't mutate the same variable at the same time, even one thread can't do that. That of course creates other interesting problems, like the fact that in order to change an element of an array you need to copy the entire array, changing its contents on the fly. Clearly not the most efficient way to deal with data, but there are ways around it. Also, if we are talking about massively parallel computing such as the recent take over by multi core systems seems to suggest, we may find that the rules have changed a bit. It might be more prudent to write code that runs slower on a single machine but that is safe to run on many machines in parallel.

Enjoy Erlang and let us know how it goes. I've only read a bit about the language and plan to get to know it a little bit more intimately sometime soon.</description>
		<content:encoded><![CDATA[<p>We&#8217;ve all been so tainted by procedural and object oriented programming that we find it very hard to think in different terms. While algorithmic (procedural and object oriented) languages work in terms of changing the state of places in memory we refer to as variables, functional languages work differently. Completely differently. In a pure functional language there is no notion of a variable (although the term is sometimes still used), there is only a notion of a bound name - a name that represents a value.</p>
<p>That sounds weird as hell at first but it can be extremely useful in certain situations like concurrent programming in which Erlang excels. Think about it. If you don&#8217;t have variables, at least not ones that can change their values, you don&#8217;t need locks. At all! There is nothing TO lock. It&#8217;s not only that two threads can&#8217;t mutate the same variable at the same time, even one thread can&#8217;t do that. That of course creates other interesting problems, like the fact that in order to change an element of an array you need to copy the entire array, changing its contents on the fly. Clearly not the most efficient way to deal with data, but there are ways around it. Also, if we are talking about massively parallel computing such as the recent take over by multi core systems seems to suggest, we may find that the rules have changed a bit. It might be more prudent to write code that runs slower on a single machine but that is safe to run on many machines in parallel.</p>
<p>Enjoy Erlang and let us know how it goes. I&#8217;ve only read a bit about the language and plan to get to know it a little bit more intimately sometime soon.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: christian</title>
		<link>http://blog.dowski.com/2007/07/31/errrr/#comment-111983</link>
		<dc:creator>christian</dc:creator>
		<pubDate>Wed, 08 Aug 2007 04:37:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dowski.com/2007/07/31/errrr/#comment-111983</guid>
		<description>Joseph: I'm not sure.  I don't know that I have ever posted a "sidebar" in a comment before.  There's a first time for everything, I suppose.</description>
		<content:encoded><![CDATA[<p>Joseph: I&#8217;m not sure.  I don&#8217;t know that I have ever posted a &#8220;sidebar&#8221; in a comment before.  There&#8217;s a first time for everything, I suppose.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: christian</title>
		<link>http://blog.dowski.com/2007/07/31/errrr/#comment-111982</link>
		<dc:creator>christian</dc:creator>
		<pubDate>Wed, 08 Aug 2007 04:36:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dowski.com/2007/07/31/errrr/#comment-111982</guid>
		<description>Ok, it looks like in practice that it doesn't matter so much that you can't reassign values to variables.  This is because the reassignment is only restricted within scope.  The functional nature of Erlang means that you will have a new scope often when you recurse.  

Anyhow, this tutorial is a good one:
http://www.erlang.org/download/getting_started-5.4.pdf

It starts to get interesting once you get into the message passing stuff.</description>
		<content:encoded><![CDATA[<p>Ok, it looks like in practice that it doesn&#8217;t matter so much that you can&#8217;t reassign values to variables.  This is because the reassignment is only restricted within scope.  The functional nature of Erlang means that you will have a new scope often when you recurse.  </p>
<p>Anyhow, this tutorial is a good one:<br />
<a href="http://www.erlang.org/download/getting_started-5.4.pdf" rel="nofollow">http://www.erlang.org/download/getting_started-5.4.pdf</a></p>
<p>It starts to get interesting once you get into the message passing stuff.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joseph</title>
		<link>http://blog.dowski.com/2007/07/31/errrr/#comment-111981</link>
		<dc:creator>Joseph</dc:creator>
		<pubDate>Tue, 07 Aug 2007 17:28:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dowski.com/2007/07/31/errrr/#comment-111981</guid>
		<description>i am on Christian's team.

Sidebar: is it typical to post "sidebar" instead of "on another note" or "by the way" in blogs? I have never seen it before, is this common.</description>
		<content:encoded><![CDATA[<p>i am on Christian&#8217;s team.</p>
<p>Sidebar: is it typical to post &#8220;sidebar&#8221; instead of &#8220;on another note&#8221; or &#8220;by the way&#8221; in blogs? I have never seen it before, is this common.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: christian</title>
		<link>http://blog.dowski.com/2007/07/31/errrr/#comment-111977</link>
		<dc:creator>christian</dc:creator>
		<pubDate>Wed, 01 Aug 2007 12:54:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dowski.com/2007/07/31/errrr/#comment-111977</guid>
		<description>Well, I think I am going to try and learn Erlang so maybe I'll find out more about this.  I'll post back with any news.

Sidebar: what's up with your blog lately?  I think last time I was there I saw some tumbleweed rolling along.</description>
		<content:encoded><![CDATA[<p>Well, I think I am going to try and learn Erlang so maybe I&#8217;ll find out more about this.  I&#8217;ll post back with any news.</p>
<p>Sidebar: what&#8217;s up with your blog lately?  I think last time I was there I saw some tumbleweed rolling along.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: michael schurter</title>
		<link>http://blog.dowski.com/2007/07/31/errrr/#comment-111976</link>
		<dc:creator>michael schurter</dc:creator>
		<pubDate>Wed, 01 Aug 2007 02:46:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dowski.com/2007/07/31/errrr/#comment-111976</guid>
		<description>I was going to say that perhaps set/bound means something other than assignment in erlang, but a little further down on that page says:

A = 10
		Succeeds - binds A to 10

Sounds like set/binds == assignment... which means variables can't change?  Well it is designed by a telecom company.  ;)</description>
		<content:encoded><![CDATA[<p>I was going to say that perhaps set/bound means something other than assignment in erlang, but a little further down on that page says:</p>
<p>A = 10<br />
		Succeeds - binds A to 10</p>
<p>Sounds like set/binds == assignment&#8230; which means variables can&#8217;t change?  Well it is designed by a telecom company.  <img src='http://blog.dowski.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
</channel>
</rss>
