<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92">
<channel>
	<title>Benjamin Halsted</title>
	<link>http://benjaminhalsted.com</link>
	<description>// [bgh] todo, add something clever here.</description>
	<lastBuildDate>Fri, 19 Mar 2010 16:18:06 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Erlang Programming Exercise: 3-6 (quicksort)</title>
		<description><![CDATA[Quicksort! Wow, it's been forever since I've had to implement a sorting routine. Here are the instructions:
Quicksort: The head of the list is taken as the pivot; the list is then split according to those elements smaller than the pivot and the rest. These two lists are then recursively sorted by quicksort, and joined together, [...]]]></description>
		<link>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-6-1/</link>
			</item>
	<item>
		<title>Erlang Programming Exercise: 3-5 (refactor)</title>
		<description><![CDATA[I wasn't happy with how the flatten and concatenate functions turned out. They weren't taking advantage of tail call optimizations, so I rewrote the flatten function for fun. During my rewrite I also wanted to avoid using BIFs to work on my pattern matching. I wasn't sure if I would be able to match the [...]]]></description>
		<link>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-5-refactor/</link>
			</item>
	<item>
		<title>Erlang Programming Exercise: 3-5</title>
		<description><![CDATA[This one was a four part exercise, so I've broken the file into sections. 
[erlang]
-module(threefive).
-export([filter/2, reverse/1, concatenate/1, flatten/1]).
[/erlang]
Write a function that, given a list of integers and an integer, will return all integers smaller than or equal to that integer.
[erlang num='3']
filter(Filtered, [], _Number) ->
	reverse(Filtered);
filter(Filtered, [H&#124;T], Number) when H =< Number ->
	filter([H&#124;Filtered], T, Number);
filter(Filtered, [_H&#124;T], Number) [...]]]></description>
		<link>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-5/</link>
			</item>
	<item>
		<title>Erlang Programming Exercise: 3-4</title>
		<description><![CDATA[In this exercise you are to make a database using this interface:
[erlang]
db:new() ⇒ Db.
db:destroy(Db) ⇒ ok.
db:write(Key, Element, Db) ⇒ NewDb.
db:delete(Key, Db) ⇒ NewDb.
db:read(Key, Db) ⇒{ok, Element} &#124; {error, instance}.
db:match(Element, Db) ⇒ [Key1, ..., KeyN].
[/erlang]
This one took a while to get right. In other languages I can look at some code and quickly figure out what [...]]]></description>
		<link>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-4/</link>
			</item>
	<item>
		<title>Erlang Programming Exercise: 3-3</title>
		<description><![CDATA[Side Effects is the title of exercise 3-3. Is printing to stdout a side effect? It must be since it makes a permanent change to the system. I just hadn't considered that before.
After the first couple of exercises, this one is a bit easier and gives you a little pat on the back. Enjoy feeling [...]]]></description>
		<link>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-3/</link>
			</item>
	<item>
		<title>Erlang Programming Exercise: 3-2</title>
		<description><![CDATA[Exercise 3-2 is also 2 questions:
Write a function that returns a list of the format [1,2,..,N-1,N].
Write a function that returns a list of the format [N, N-1,..,2,1]
I've created 4 functions, create/1, create/2, reverse_create/1, and reverse_create/2. The /1 functions set up the arguments for the /2 worker functions to loop on. 
[erlang]
-module(threetwo).
-export([create/1, reverse_create/1]).
create(1, [1&#124;_T]=List) ->
	List;
create(Num, List) [...]]]></description>
		<link>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-2/</link>
			</item>
	<item>
		<title>Erlang Programming Exercise: 3-1</title>
		<description><![CDATA[I'm posting the exercises starting with chapter 3. The previous chapters have you work in the shell and don't require much file work. Exercise 3-1 is:
Write a function sum/1 which, given a positive integer N, will return the sum of all the integers between 1 and N.
And the second part:
Write a function sum/2 which, given two [...]]]></description>
		<link>http://benjaminhalsted.com/2010/03/erlang-programming-exercise-3-1/</link>
			</item>
	<item>
		<title>Learning Erlang</title>
		<description><![CDATA[It all started way back when I was doing concurrent programming in Java for the MMORPG when a buddy of mine pointed out CouchDB. It's a neat project, but was written in some strange language called Erlang. I started to look more into Erlang and found that the language was designed to addressed some of [...]]]></description>
		<link>http://benjaminhalsted.com/2010/03/learning-erlang/</link>
			</item>
	<item>
		<title>Subversion loves Araxis Merge (or, How I finally configured subversion to use Araxis Merge in a not so stupid way.)</title>
		<description><![CDATA[Araxis suggests modifying subversions diff-cmd and diff3-cmd settings to get it to use Araxis Merge instead of the defaults. Here is a snippet from their docs. (You can skip it, it's just here to make my post look bigger.):

Open your ‘SVN configuration area’ configuration file in a text editor. The default location for this file [...]]]></description>
		<link>http://benjaminhalsted.com/2010/03/subversion-lovesaraxis-merge-subversion/</link>
			</item>
	<item>
		<title>Shock &amp; Awe @ Google</title>
		<description><![CDATA[Today Googles homepage has a nice look to it, so much different that I was shocked when I arrived. The navigation and footer links faded in when you move your mouse. Very nice Google, I applaud you.
]]></description>
		<link>http://benjaminhalsted.com/2009/10/shock-awe-google/</link>
			</item>
</channel>
</rss>
