<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Chance Coble</title>
	<atom:link href="http://leibnizdream.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://leibnizdream.wordpress.com</link>
	<description>Functional Programming in Austin, Texas</description>
	<lastBuildDate>Sun, 02 Nov 2008 12:22:11 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='leibnizdream.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/1af0c46c30a300574417172ee8bd42b8?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Chance Coble</title>
		<link>http://leibnizdream.wordpress.com</link>
	</image>
			<item>
		<title>F# CheatSheet Updated</title>
		<link>http://leibnizdream.wordpress.com/2008/11/02/f-cheatsheet-updated/</link>
		<comments>http://leibnizdream.wordpress.com/2008/11/02/f-cheatsheet-updated/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 12:20:31 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[F# News]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=110</guid>
		<description><![CDATA[The F# CheatSheet now inlcudes Async Computations and Active Patterns.  Any further suggestions or comments are welcome.
Available at : http://www.a6systems.com/fsharpcheatsheet.pdf

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=110&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The <a href="http://www.a6systems.com/fsharpcheatsheet.pdf">F# CheatSheet </a>now inlcudes Async Computations and Active Patterns.  Any further suggestions or comments are welcome.</p>
<p>Available at : <a href="http://www.a6systems.com/fsharpcheatsheet.pdf">http://www.a6systems.com/fsharpcheatsheet.pdf</a></p>
<p style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa100m01.png" alt="" /><a href="http://www.facebook.com/sharer.php?u=http://leibnizdream.wordpress.com/2008/11/02/f-cheatsheet-updated/" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa101m01.png" alt="Add to Facebook" /></a><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F11%2F02%2Ff-cheatsheet-updated%2F&amp;title=F%23%20CheatSheet%20Updated" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa102m01.png" alt="Add to Digg" /></a><a href="http://del.icio.us/post?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F11%2F02%2Ff-cheatsheet-updated%2F&amp;title=F%23%20CheatSheet%20Updated" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa103m01.png" alt="Add to Del.icio.us" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F11%2F02%2Ff-cheatsheet-updated%2F&amp;title=F%23%20CheatSheet%20Updated" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa104m01.png" alt="Add to Stumbleupon" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F11%2F02%2Ff-cheatsheet-updated%2F&amp;title=F%23%20CheatSheet%20Updated" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa105m01.png" alt="Add to Reddit" /></a><a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F11%2F02%2Ff-cheatsheet-updated%2F&amp;Title=F%23%20CheatSheet%20Updated" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa106m01.png" alt="Add to Blinklist" /></a><a href="http://ma.gnolia.com/bookmarklet/add?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F11%2F02%2Ff-cheatsheet-updated%2F&amp;title=F%23%20CheatSheet%20Updated" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa107m01.png" alt="Add to Ma.gnolia" /></a><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F11%2F02%2Ff-cheatsheet-updated%2F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa108m01.png" alt="Add to Technorati" /></a><a href="http://www.furl.net/storeIt.jsp?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F11%2F02%2Ff-cheatsheet-updated%2F&amp;t=F%23%20CheatSheet%20Updated" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa109m01.png" alt="Add to Furl" /></a><a href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F11%2F02%2Ff-cheatsheet-updated%2F&amp;h=F%23%20CheatSheet%20Updated" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa110m01.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa111m01.png" alt="" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/110/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/110/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/110/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=110&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/11/02/f-cheatsheet-updated/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa100m01.png" medium="image" />

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa101m01.png" medium="image">
			<media:title type="html">Add to Facebook</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa102m01.png" medium="image">
			<media:title type="html">Add to Digg</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa103m01.png" medium="image">
			<media:title type="html">Add to Del.icio.us</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa104m01.png" medium="image">
			<media:title type="html">Add to Stumbleupon</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa105m01.png" medium="image">
			<media:title type="html">Add to Reddit</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa106m01.png" medium="image">
			<media:title type="html">Add to Blinklist</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa107m01.png" medium="image">
			<media:title type="html">Add to Ma.gnolia</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa108m01.png" medium="image">
			<media:title type="html">Add to Technorati</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa109m01.png" medium="image">
			<media:title type="html">Add to Furl</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa110m01.png" medium="image">
			<media:title type="html">Add to Newsvine</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa111m01.png" medium="image" />
	</item>
		<item>
		<title>3D Visualization of U.S. Presidential Polls in F#</title>
		<link>http://leibnizdream.wordpress.com/2008/10/27/3d-visualization-of-us-presidential-polls-in-f/</link>
		<comments>http://leibnizdream.wordpress.com/2008/10/27/3d-visualization-of-us-presidential-polls-in-f/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 16:20:27 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[F# News]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=97</guid>
		<description><![CDATA[The US presidential race has been really exciting lately &#8211; and I thought it might be an opportunity for me to use some of the visualization work I have been doing to enhance my understanding of what is happening on a state by state basis as time passes.  The result is a lot of fun [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=97&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The US presidential race has been really exciting lately &#8211; and I thought it might be an opportunity for me to use some of the visualization work I have been doing to enhance my understanding of what is happening on a state by state basis as time passes.  The result is a lot of fun &#8211; and I hope you will enjoy viewing it.  I screencasted a walkthrough of the work, and posted it to youtube.  You can get it from the <a href="http://a6systems.com/visualizations.html">A6 Visualizations </a>page.  The data was made available by <a href="http://www.electoral-vote.com/">electoral-vote.com</a>.</p>
<p>The 3D Sparkline is what I had the most fun developing.   While the 3rd dimension doesn&#8217;t add information to the sparkline itself &#8211; it does allow us to assocate the sparkline to a location in 3D space which clarifies polling relationships.</p>
<div id="attachment_100" class="wp-caption alignnone" style="width: 310px"><a href="http://a6systems.com/visualizations.html"><img class="size-medium wp-image-100" title="Poll Momentum" src="http://leibnizdream.files.wordpress.com/2008/10/pollmomentum.jpg?w=300&#038;h=182" alt="A screenshot of the visualization" width="300" height="182" /></a><p class="wp-caption-text">A screenshot of the visualization</p></div>
<p style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa100m02.png" alt="" /><a href="http://www.facebook.com/sharer.php?u=http://leibnizdream.wordpress.com/2008/10/27/3d-visualization-of-us-presidential-polls-in-f/" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa101m02.png" alt="Add to Facebook" /></a><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F27%2F3d-visualization-of-us-presidential-polls-in-f%2F&amp;title=3D%20Visualization%20of%20U.S.%20Presidential%20Polls%20in%20F%23" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa102m02.png" alt="Add to Digg" /></a><a href="http://del.icio.us/post?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F27%2F3d-visualization-of-us-presidential-polls-in-f%2F&amp;title=3D%20Visualization%20of%20U.S.%20Presidential%20Polls%20in%20F%23" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa103m02.png" alt="Add to Del.icio.us" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F27%2F3d-visualization-of-us-presidential-polls-in-f%2F&amp;title=3D%20Visualization%20of%20U.S.%20Presidential%20Polls%20in%20F%23" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa104m02.png" alt="Add to Stumbleupon" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F27%2F3d-visualization-of-us-presidential-polls-in-f%2F&amp;title=3D%20Visualization%20of%20U.S.%20Presidential%20Polls%20in%20F%23" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa105m02.png" alt="Add to Reddit" /></a><a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F27%2F3d-visualization-of-us-presidential-polls-in-f%2F&amp;Title=3D%20Visualization%20of%20U.S.%20Presidential%20Polls%20in%20F%23" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa106m02.png" alt="Add to Blinklist" /></a><a href="http://ma.gnolia.com/bookmarklet/add?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F27%2F3d-visualization-of-us-presidential-polls-in-f%2F&amp;title=3D%20Visualization%20of%20U.S.%20Presidential%20Polls%20in%20F%23" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa107m02.png" alt="Add to Ma.gnolia" /></a><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F27%2F3d-visualization-of-us-presidential-polls-in-f%2F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa108m02.png" alt="Add to Technorati" /></a><a href="http://www.furl.net/storeIt.jsp?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F27%2F3d-visualization-of-us-presidential-polls-in-f%2F&amp;t=3D%20Visualization%20of%20U.S.%20Presidential%20Polls%20in%20F%23" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa109m02.png" alt="Add to Furl" /></a><a href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F27%2F3d-visualization-of-us-presidential-polls-in-f%2F&amp;h=3D%20Visualization%20of%20U.S.%20Presidential%20Polls%20in%20F%23" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa110m02.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa111m02.png" alt="" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=97&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/10/27/3d-visualization-of-us-presidential-polls-in-f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>

		<media:content url="http://leibnizdream.files.wordpress.com/2008/10/pollmomentum.jpg?w=300" medium="image">
			<media:title type="html">Poll Momentum</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa100m02.png" medium="image" />

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa101m02.png" medium="image">
			<media:title type="html">Add to Facebook</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa102m02.png" medium="image">
			<media:title type="html">Add to Digg</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa103m02.png" medium="image">
			<media:title type="html">Add to Del.icio.us</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa104m02.png" medium="image">
			<media:title type="html">Add to Stumbleupon</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa105m02.png" medium="image">
			<media:title type="html">Add to Reddit</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa106m02.png" medium="image">
			<media:title type="html">Add to Blinklist</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa107m02.png" medium="image">
			<media:title type="html">Add to Ma.gnolia</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa108m02.png" medium="image">
			<media:title type="html">Add to Technorati</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa109m02.png" medium="image">
			<media:title type="html">Add to Furl</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa110m02.png" medium="image">
			<media:title type="html">Add to Newsvine</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa111m02.png" medium="image" />
	</item>
		<item>
		<title>Why use Computation Workflows (aka Monads) in F#?</title>
		<link>http://leibnizdream.wordpress.com/2008/10/21/why-use-computation-workflows-aka-monads-in-f/</link>
		<comments>http://leibnizdream.wordpress.com/2008/10/21/why-use-computation-workflows-aka-monads-in-f/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 20:03:32 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=81</guid>
		<description><![CDATA[A couple of friends recently asked me &#8230; what is a Monad?  I decided to use it as an excuse to join the many authors of monad tutorials.  Below is my little explanation using F# for examples.
When one starts down the road of functional programming, an interesting conclusion about composition and sequence is always arrived [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=81&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A couple of friends recently asked me &#8230; what is a Monad?  I decided to use it as an excuse to join the many authors of monad tutorials.  Below is my little explanation using F# for examples.</p>
<p>When one starts down the road of functional programming, an interesting conclusion about composition and sequence is always arrived at early.</p>
<p>As functions like</p>
<p><code><span style="color:#0000ff;">let</span> f x = y</code></p>
<p>and</p>
<p><code><span style="color:#0000ff;">let</span> g y = z</code></p>
<p>are created writing g ( f x ) always seems to come naturally.  And it is obvious that in a strict language (like F#) f will be applied to x and g will be applied to the result creating an intuitive sequence of actions.  Programmers today have very little trouble with this because of the familiar dot &#8220;.&#8221; notation.</p>
<p><code><span style="color:#888888;"><span style="color:#0000ff;">new</span> </span>MyObject()<br />
.GetSomething()<br />
.ApplyToResult()</code><br />
&#8230; etc</p>
<p>An exciting exploration in the young functional programmer results and they come to the conclusion that the ability to chain multiple functions in this fashion would be useful.  Suddenly their functional code begins to take advantage of all of the functional bells and whistles while adding an imperative look.</p>
<p>To do this they need only define a composition operator (already defined in F#)</p>
<p><code><span style="color:#0000ff;">let</span> (|&gt;) x f = f(x)</code></p>
<p>so they can write sequences that look very much like the dot &#8220;.&#8221; notation above.</p>
<p><code>x<br />
|&gt; getSomething<br />
|&gt; applyToResult</code></p>
<p>Beautiful!  Of course we haven&#8217;t broken any new ground yet.  But the preceding discussion has led us to an interesting problem.  This approach, in general, requires us to mold our types around our program.  In order for &#8220;getSomething&#8221; to be applied it must both accept the type of &#8220;x&#8221; and result in the type in which &#8220;applyToResult&#8221; accepts.  Lining these types up is perfectly acceptable for some small programs, but if we want to build up a larger object, or glue together programs that come from different architectures then we wind up writing code to massage the types &#8211; that forces us to work for the type system rather than the other way around. </p>
<p>Also, consider how the above code handles failure &#8211; it really doesn&#8217;t!  If &#8220;getSomething&#8221; fails it must throw an exception, or the code to deal with failure must be in every single subsequent function in the chain.  For a chain of 10 functions this creates an enormous amount of work &#8211; not to mention possible failure states.  This is exactly how most software is written today &#8211; we rarely create a seperate module for failure (or other logic that must happen between the lines).  Rather we expect it to be dealt with explicitly</p>
<p>Another way to go is to put the logic that handles what should happen between functions into its own function.  Let&#8217;s call that function &#8220;bind&#8221;.  The function &#8220;bind&#8221; should take a single value type (call it M) that encapsulates the data (of type &#8216;a) that we are working with.  So bind takes as its first argument M&lt;&#8217;a&gt;.</p>
<p>What should it take as the second argument?  How about a function that takes M&lt;&#8217;a&gt; and returns M&lt;&#8217;a&gt;?  The problem with that approach is that the protected and encapsulated value inside of a should only be retrieved if we are in a good state, and its retrieval should be a seperate module &#8211; that is the point of the bind function.  So let&#8217;s assume bind somehow gets the value of type &#8216;a out of M&lt;&#8217;a&gt;.  Then the second argument would be a function that takes &#8216;a and returns M&lt;&#8217;b&gt; (where &#8216;b may or may not be the same type as &#8216;a).</p>
<p>So now we write code like &#8230;</p>
<p><code>bind M(x) (<span style="color:#0000ff;">fun</span> y -&gt;<br />
bind (getSomething y) (<span style="color:#0000ff;">fun</span> z -&gt;<br />
bind applyResult z))</code></p>
<p>Not very pretty is it?  What if we make bind an operator? </p>
<p><code>let (&gt;&gt;=) = bind</code></p>
<p>Then we can write</p>
<p><code>M(x) &gt;&gt;= <span style="color:#0000ff;">fun</span> y -&gt;<br />
getSomething y &gt;&gt;= <span style="color:#0000ff;">fun</span> z -&gt;<br />
applyResult z</code></p>
<p>Still not too pretty.  Ok, to solve this problem languages like F# just allow some clean syntax and compile down to what you see above.</p>
<p>Haskell uses a &#8220;do&#8221; notation to accomplish this, but we will focus on F# and its computation expressions/workflows in this post.  So let&#8217;s create an example &#8211; in fact one of the most common examples when it comes to Monads (a little googling and you will find the example below several times over).  We will have a computation that can fail at any step &#8211; but we don&#8217;t want to have to deal with its failure over and over.  We would rather just have failure dealt with in the bind function, and everything else should be able to ignore it.<br />
<code><br />
<span style="color:#0000ff;">let</span> option&lt;'a&gt; =<br />
| Some of 'a<br />
| None</code><br />
Now that we have the bind function lets create our Maybe structure that F# will use to help us create cleaner syntax.</p>
<p><span style="color:#0000ff;">let </span>bind v f = <span style="color:#0000ff;">match</span> v <span style="color:#0000ff;">with </span>| None -&gt; () | Some(x) -&gt; f x</p>
<p><code><span style="color:#0000ff;">type</span> Maybe() =<br />
<span style="color:#0000ff;">    member</span> o.Bind(v,f) = bind v f<br />
<span style="color:#0000ff;">    member</span> o.Return(v) = Some(v)</code><br />
In F# the type of monad/workflow must be explicitly declared.  So the syntax F# uses includes the type of workflow you will be invoking, along with the program inside curly braces.</p>
<p><span style="color:#0000ff;">let</span> maybe = Maybe()</p>
<p><code><span style="color:#0000ff;">let </span>con() =<br />
   maybe {<br />
<span style="color:#0000ff;">       let</span> c = getDBConnection()<br />
<span style="color:#0000ff;">       if</span> validCon(c) <span style="color:#0000ff;">then</span> <span style="color:#0000ff;">return!</span> Some(c) <span style="color:#0000ff;">else</span> <span style="color:#0000ff;">return!</span> None}<br />
</code><br />
The return! (with exclamation point) is just a convenient way for us to return the result of a maybe expression (rather than return the underlying value).  The underlying value would have to be wrapped in an option type before we could return it &#8211; that is done easily enough with the normal return (no exclamation point) keyword.</p>
<p>Lets add some work to this program that really emphasizes the failure capture.  We will add a &#8220;queryDB&#8221; function.</p>
<p><code><span style="color:#0000ff;">let</span> queryDB c q =<br />
       maybe {<br />
<span style="color:#0000ff;">             let </span>v = queryDB q<br />
<span style="color:#0000ff;">             if</span> verify v <span style="color:#0000ff;">then</span> <span style="color:#0000ff;">return!</span> Some(v) <span style="color:#0000ff;">else</span> <span style="color:#0000ff;">return!</span> None}</code></p>
<p><span style="color:#0000ff;">let </span>queryVal q =<br />
         maybe { <span style="color:#0000ff;">let!</span> c = con() <span style="color:#339966;">// c is assured after this line</span><br />
<span style="color:#0000ff;">                 let!</span> v = queryDB c q<br />
<span style="color:#0000ff;">                 return</span> v }</p>
<p>Note that the code above does no obvious exception handling, or other failure management.  It just has the &#8220;maybe&#8221; claim before the code block.  That ensures the the &#8220;maybe&#8221; bind function is called at each &#8220;let!&#8221;.  And the &#8220;return&#8221; function packages the value into an option type (as Some(x)).   So while we use this cleaner syntax above, ultimately</p>
<p><code><span style="color:#0000ff;">let!</span> c = con()</code></p>
<p>compiles to</p>
<p><code>maybe.Bind(con(),<span style="color:#0000ff;">fun</span> c <span style="color:#0000ff;">-&gt;</span><br />
<span style="color:#339966;">//rest of the program</span></code></p>
<p>Thanks to bind handling each of the composition steps, we don&#8217;t have to worry about failure in all of our computations anymore.  Bind has offered us a great deal of modularity, we can finally seperate the concerns of failure from our line by line logic.</p>
<p>I have used these structures for image processing, asynchronous computing, IO (in Haskell), lists, failure handling (as above) and have found it to be a surprisingly prolific architectural approach to difficult problems.  When you create a seperate module to handle the composition of different systems, much of the world of programming opens up to you.  You can deliver solutions for complex systems that are easier to understand &#8211; chewing away at your software&#8217;s complexity.</p>
<p><a href="http://a6systems.com">We</a> will be working through many other concepts in F# at <a href="http://a6systems.com/fsharptraining.html">our training session on 11/14 in Austin, Texas</a>.  If you are in the area you are welcome to sign up.</p>
<p>[Aside: <a href="http://weblogs.asp.net/podwysocki/default.aspx">Mathew Podwysocki</a> has a couple of very interesting posts - including using the structure above for <a href="http://weblogs.asp.net/podwysocki/archive/2008/10/15/functional-c-implementing-async-computations-in-c.aspx">asynchronous computing in C#: </a>End of Aside]</p>
<p style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa100m03.png" alt="" /><a href="http://www.facebook.com/sharer.php?u=http://leibnizdream.wordpress.com/2008/10/21/why-use-computation-workflows-aka-monads-in-f/" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa101m03.png" alt="Add to Facebook" /></a><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F21%2Fwhy-use-computation-workflows-aka-monads-in-f%2F&amp;title=Why%20use%20Computation%20Workflows%20(aka%20Monads)%20in%20F%23%3F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa102m03.png" alt="Add to Digg" /></a><a href="http://del.icio.us/post?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F21%2Fwhy-use-computation-workflows-aka-monads-in-f%2F&amp;title=Why%20use%20Computation%20Workflows%20(aka%20Monads)%20in%20F%23%3F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa103m03.png" alt="Add to Del.icio.us" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F21%2Fwhy-use-computation-workflows-aka-monads-in-f%2F&amp;title=Why%20use%20Computation%20Workflows%20(aka%20Monads)%20in%20F%23%3F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa104m03.png" alt="Add to Stumbleupon" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F21%2Fwhy-use-computation-workflows-aka-monads-in-f%2F&amp;title=Why%20use%20Computation%20Workflows%20(aka%20Monads)%20in%20F%23%3F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa105m03.png" alt="Add to Reddit" /></a><a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F21%2Fwhy-use-computation-workflows-aka-monads-in-f%2F&amp;Title=Why%20use%20Computation%20Workflows%20(aka%20Monads)%20in%20F%23%3F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa106m03.png" alt="Add to Blinklist" /></a><a href="http://ma.gnolia.com/bookmarklet/add?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F21%2Fwhy-use-computation-workflows-aka-monads-in-f%2F&amp;title=Why%20use%20Computation%20Workflows%20(aka%20Monads)%20in%20F%23%3F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa107m03.png" alt="Add to Ma.gnolia" /></a><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F21%2Fwhy-use-computation-workflows-aka-monads-in-f%2F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa108m03.png" alt="Add to Technorati" /></a><a href="http://www.furl.net/storeIt.jsp?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F21%2Fwhy-use-computation-workflows-aka-monads-in-f%2F&amp;t=Why%20use%20Computation%20Workflows%20(aka%20Monads)%20in%20F%23%3F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa109m03.png" alt="Add to Furl" /></a><a href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F21%2Fwhy-use-computation-workflows-aka-monads-in-f%2F&amp;h=Why%20use%20Computation%20Workflows%20(aka%20Monads)%20in%20F%23%3F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa110m03.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa111m03.png" alt="" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=81&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/10/21/why-use-computation-workflows-aka-monads-in-f/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa100m03.png" medium="image" />

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa101m03.png" medium="image">
			<media:title type="html">Add to Facebook</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa102m03.png" medium="image">
			<media:title type="html">Add to Digg</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa103m03.png" medium="image">
			<media:title type="html">Add to Del.icio.us</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa104m03.png" medium="image">
			<media:title type="html">Add to Stumbleupon</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa105m03.png" medium="image">
			<media:title type="html">Add to Reddit</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa106m03.png" medium="image">
			<media:title type="html">Add to Blinklist</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa107m03.png" medium="image">
			<media:title type="html">Add to Ma.gnolia</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa108m03.png" medium="image">
			<media:title type="html">Add to Technorati</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa109m03.png" medium="image">
			<media:title type="html">Add to Furl</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa110m03.png" medium="image">
			<media:title type="html">Add to Newsvine</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa111m03.png" medium="image" />
	</item>
		<item>
		<title>F# Cheat Sheet</title>
		<link>http://leibnizdream.wordpress.com/2008/10/16/f-cheat-sheet/</link>
		<comments>http://leibnizdream.wordpress.com/2008/10/16/f-cheat-sheet/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 01:32:19 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[F# News]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=78</guid>
		<description><![CDATA[A6 Systems has posted an F# Cheat Sheet for those who are using or learning F# and need something easily accessible to remind them of the syntax.  You can print this sheet out in landscape mode and keep it around your desk &#8211; or pull up the pdf (available at http://a6systems.com/resources.html) when you need [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=78&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A6 Systems has posted an <a title="F# Cheat Sheet" href="http://a6systems.com/resources.html">F# Cheat Sheet</a> for those who are using or learning F# and need something easily accessible to remind them of the syntax.  You can print this sheet out in landscape mode and keep it around your desk &#8211; or pull up the pdf (available at <a href="http://a6systems.com/resources.html">http://a6systems.com/resources.html</a>) when you need a quick reminder.</p>
<p style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa100m04.png" alt="" /><a href="http://www.facebook.com/sharer.php?u=http://leibnizdream.wordpress.com/2008/10/16/f-cheat-sheet/" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa101m04.png" alt="Add to Facebook" /></a><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F16%2Ff-cheat-sheet%2F&amp;title=F%23%20Cheat%20Sheet" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa102m04.png" alt="Add to Digg" /></a><a href="http://del.icio.us/post?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F16%2Ff-cheat-sheet%2F&amp;title=F%23%20Cheat%20Sheet" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa103m04.png" alt="Add to Del.icio.us" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F16%2Ff-cheat-sheet%2F&amp;title=F%23%20Cheat%20Sheet" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa104m04.png" alt="Add to Stumbleupon" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F16%2Ff-cheat-sheet%2F&amp;title=F%23%20Cheat%20Sheet" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa105m04.png" alt="Add to Reddit" /></a><a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F16%2Ff-cheat-sheet%2F&amp;Title=F%23%20Cheat%20Sheet" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa106m04.png" alt="Add to Blinklist" /></a><a href="http://ma.gnolia.com/bookmarklet/add?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F16%2Ff-cheat-sheet%2F&amp;title=F%23%20Cheat%20Sheet" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa107m04.png" alt="Add to Ma.gnolia" /></a><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F16%2Ff-cheat-sheet%2F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa108m04.png" alt="Add to Technorati" /></a><a href="http://www.furl.net/storeIt.jsp?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F16%2Ff-cheat-sheet%2F&amp;t=F%23%20Cheat%20Sheet" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa109m04.png" alt="Add to Furl" /></a><a href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F16%2Ff-cheat-sheet%2F&amp;h=F%23%20Cheat%20Sheet" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa110m04.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa111m04.png" alt="" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=78&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/10/16/f-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa100m04.png" medium="image" />

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa101m04.png" medium="image">
			<media:title type="html">Add to Facebook</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa102m04.png" medium="image">
			<media:title type="html">Add to Digg</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa103m04.png" medium="image">
			<media:title type="html">Add to Del.icio.us</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa104m04.png" medium="image">
			<media:title type="html">Add to Stumbleupon</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa105m04.png" medium="image">
			<media:title type="html">Add to Reddit</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa106m04.png" medium="image">
			<media:title type="html">Add to Blinklist</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa107m04.png" medium="image">
			<media:title type="html">Add to Ma.gnolia</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa108m04.png" medium="image">
			<media:title type="html">Add to Technorati</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa109m04.png" medium="image">
			<media:title type="html">Add to Furl</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa110m04.png" medium="image">
			<media:title type="html">Add to Newsvine</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa111m04.png" medium="image" />
	</item>
		<item>
		<title>MSDN Async Article Online</title>
		<link>http://leibnizdream.wordpress.com/2008/10/11/msdn-async-article-online/</link>
		<comments>http://leibnizdream.wordpress.com/2008/10/11/msdn-async-article-online/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 14:05:39 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[Article Pointers]]></category>
		<category><![CDATA[F# News]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=75</guid>
		<description><![CDATA[The MSDN F# Async article is now online (thanks to Don Syme and Luke Hoban for review and comments).

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=75&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The <a href="http://msdn.microsoft.com/en-us/magazine/cc967279.aspx">MSDN F# Async article</a> is now online (thanks to <a href="http://blogs.msdn.com/dsyme/">Don Syme</a> and <a href="http://blogs.msdn.com/lukeh/">Luke Hoban</a> for review and comments).</p>
<p style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa100m02.png" alt="" /><a href="http://www.facebook.com/sharer.php?u=http://leibnizdream.wordpress.com/2008/10/11/msdn-async-article-online/" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa101m02.png" alt="Add to Facebook" /></a><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F11%2Fmsdn-async-article-online%2F&amp;title=MSDN%20Async%20Article%20Online" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa102m02.png" alt="Add to Digg" /></a><a href="http://del.icio.us/post?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F11%2Fmsdn-async-article-online%2F&amp;title=MSDN%20Async%20Article%20Online" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa103m02.png" alt="Add to Del.icio.us" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F11%2Fmsdn-async-article-online%2F&amp;title=MSDN%20Async%20Article%20Online" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa104m02.png" alt="Add to Stumbleupon" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F11%2Fmsdn-async-article-online%2F&amp;title=MSDN%20Async%20Article%20Online" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa105m02.png" alt="Add to Reddit" /></a><a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F11%2Fmsdn-async-article-online%2F&amp;Title=MSDN%20Async%20Article%20Online" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa106m02.png" alt="Add to Blinklist" /></a><a href="http://ma.gnolia.com/bookmarklet/add?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F11%2Fmsdn-async-article-online%2F&amp;title=MSDN%20Async%20Article%20Online" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa107m02.png" alt="Add to Ma.gnolia" /></a><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F11%2Fmsdn-async-article-online%2F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa108m02.png" alt="Add to Technorati" /></a><a href="http://www.furl.net/storeIt.jsp?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F11%2Fmsdn-async-article-online%2F&amp;t=MSDN%20Async%20Article%20Online" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa109m02.png" alt="Add to Furl" /></a><a href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F11%2Fmsdn-async-article-online%2F&amp;h=MSDN%20Async%20Article%20Online" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa110m02.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa111m02.png" alt="" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=75&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/10/11/msdn-async-article-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa100m02.png" medium="image" />

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa101m02.png" medium="image">
			<media:title type="html">Add to Facebook</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa102m02.png" medium="image">
			<media:title type="html">Add to Digg</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa103m02.png" medium="image">
			<media:title type="html">Add to Del.icio.us</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa104m02.png" medium="image">
			<media:title type="html">Add to Stumbleupon</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa105m02.png" medium="image">
			<media:title type="html">Add to Reddit</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa106m02.png" medium="image">
			<media:title type="html">Add to Blinklist</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa107m02.png" medium="image">
			<media:title type="html">Add to Ma.gnolia</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa108m02.png" medium="image">
			<media:title type="html">Add to Technorati</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa109m02.png" medium="image">
			<media:title type="html">Add to Furl</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa110m02.png" medium="image">
			<media:title type="html">Add to Newsvine</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa111m02.png" medium="image" />
	</item>
		<item>
		<title>F# Quickstart</title>
		<link>http://leibnizdream.wordpress.com/2008/10/06/f-quickstart/</link>
		<comments>http://leibnizdream.wordpress.com/2008/10/06/f-quickstart/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 08:33:43 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[F# News]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=72</guid>
		<description><![CDATA[An increasing number of people are asking me about F# these days.  They want to know how to understand the paradigm shift, how to add value with it, how to integrate with other .NET languages and in essence how to use it in the real world.  To help answer this question I am [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=72&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>An increasing number of people are asking me about F# these days.  They want to know how to understand the paradigm shift, how to add value with it, how to integrate with other .NET languages and in essence how to use it in the real world.  To help answer this question I am launching an <a href="http://www.a6systems.com/fsharptraining.html">F# Quickstart course</a> with Roger Castillo to assist developers who are completely new to functional languages and have never experienced the fun of working with them.  We are expecting to schedule the first course in about 6 weeks.</p>
<p>I have been using functional languages for several years, and have never been so optimistic about the value they will bring to every day software developers.  I will really enjoy sharing this experience with other people, and look forward to hearing from anyone who is interested.</p>
<p style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa100m04.png" alt="" /><a href="http://www.facebook.com/sharer.php?u=http://leibnizdream.wordpress.com/2008/10/06/f-quickstart/" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa101m04.png" alt="Add to Facebook" /></a><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F06%2Ff-quickstart%2F&amp;title=F%23%20QuickStart" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa102m04.png" alt="Add to Digg" /></a><a href="http://del.icio.us/post?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F06%2Ff-quickstart%2F&amp;title=F%23%20QuickStart" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa103m04.png" alt="Add to Del.icio.us" /></a><a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F06%2Ff-quickstart%2F&amp;title=F%23%20QuickStart" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa104m04.png" alt="Add to Stumbleupon" /></a><a href="http://reddit.com/submit?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F06%2Ff-quickstart%2F&amp;title=F%23%20QuickStart" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa105m04.png" alt="Add to Reddit" /></a><a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F06%2Ff-quickstart%2F&amp;Title=F%23%20QuickStart" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa106m04.png" alt="Add to Blinklist" /></a><a href="http://ma.gnolia.com/bookmarklet/add?url=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F06%2Ff-quickstart%2F&amp;title=F%23%20QuickStart" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa107m04.png" alt="Add to Ma.gnolia" /></a><a href="http://www.technorati.com/faves?add=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F06%2Ff-quickstart%2F" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa108m04.png" alt="Add to Technorati" /></a><a href="http://www.furl.net/storeIt.jsp?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F06%2Ff-quickstart%2F&amp;t=F%23%20QuickStart" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa109m04.png" alt="Add to Furl" /></a><a href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fleibnizdream.wordpress.com%2F2008%2F10%2F06%2Ff-quickstart%2F&amp;h=F%23%20QuickStart" target="_blank"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa110m04.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.files.wordpress.com/2008/05/gsa111m04.png" alt="" /></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=72&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/10/06/f-quickstart/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa100m04.png" medium="image" />

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa101m04.png" medium="image">
			<media:title type="html">Add to Facebook</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa102m04.png" medium="image">
			<media:title type="html">Add to Digg</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa103m04.png" medium="image">
			<media:title type="html">Add to Del.icio.us</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa104m04.png" medium="image">
			<media:title type="html">Add to Stumbleupon</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa105m04.png" medium="image">
			<media:title type="html">Add to Reddit</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa106m04.png" medium="image">
			<media:title type="html">Add to Blinklist</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa107m04.png" medium="image">
			<media:title type="html">Add to Ma.gnolia</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa108m04.png" medium="image">
			<media:title type="html">Add to Technorati</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa109m04.png" medium="image">
			<media:title type="html">Add to Furl</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa110m04.png" medium="image">
			<media:title type="html">Add to Newsvine</media:title>
		</media:content>

		<media:content url="http://getsocialserver.files.wordpress.com/2008/05/gsa111m04.png" medium="image" />
	</item>
		<item>
		<title>The Function Pattern</title>
		<link>http://leibnizdream.wordpress.com/2008/09/27/the-function-pattern/</link>
		<comments>http://leibnizdream.wordpress.com/2008/09/27/the-function-pattern/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 13:22:06 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=69</guid>
		<description><![CDATA[In his book “Domain Driven Design”,  Eric Evans describes proper approaches for object-oriented programs to describe domains in expressive programs that take advantage of encapsulation to simplify architectures.  It is a great book, and is a popular read for programmers interested in object-oriented design.
Mr. Evans makes a very interesting point at the bottom of page [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=69&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">In his book <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215">“Domain Driven Design”</a>,  <a href="http://www.domainlanguage.com/about/ericevans.html">Eric Evans</a> describes proper approaches for object-oriented programs to describe domains in expressive programs that take advantage of encapsulation to simplify architectures.<span>  </span>It is a great book, and is a popular read for programmers interested in object-oriented design.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Mr. Evans makes a very interesting point at the bottom of page 250, quoting directly from the book …</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span>   </span>“Operations that return result without producing side effects are called <em>functions</em>. A function can be called multiple times and return the same value each time.<span>  </span>A function can call on other functions without worrying about the depth of nesting.<span>  </span>Functions are much easier to test than operations that have side effects.<span>  </span>For these reasons, functions lower risk.”</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">He goes on in the next page to push his functional advocacy even further …</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">“Therefore:<br />
<span>     </span><strong>Place as much of the logic of the program as possible into functions, operations that return results with no observable side effects.”</strong><span>      </span>[Bold in the original text]</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">I am encouraged to see a book on object-oriented programming recognize the risk mitigating properties of functions, as well as the deleterious consequences of prolific side-effects.<span>  </span><span> </span>I believe this an important point because we are moving into a time when functional and object oriented programs must learn to coexist.<span>  </span>This will confuse many object oriented programmers, and probably functional programmers as well.<span>  </span>However, languages (primarily I am thinking of <a href="http://msdn.microsoft.com/en-us/fsharp/default.aspx">F#</a> here) are being introduced that have responded directly to this challenge &#8211; and the results are promising.</span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=69&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/09/27/the-function-pattern/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>
	</item>
		<item>
		<title>I&#8217;m Off!</title>
		<link>http://leibnizdream.wordpress.com/2008/09/22/im-off/</link>
		<comments>http://leibnizdream.wordpress.com/2008/09/22/im-off/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 13:04:39 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=67</guid>
		<description><![CDATA[I am off to ICFP 2008 where I will be chatting with fellow functional enthusiasts.  The ACM SIGPLAN is hosting this event in Victoria, B.C.   Do you see how committed I am to advancing functional programming?  I mean, I am willing to leave the heat waves and hurricanes in Texas to spend a whole week in Victoria, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=67&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">I am off to <a href="http://www.icfpconference.org/icfp2008/">ICFP 2008</a> where I will be chatting with fellow functional enthusiasts.<span>  </span>The <a href="http://www.sigplan.org/index.htm">ACM SIGPLAN</a> is hosting this event in <a href="http://www.tourismvictoria.com/">Victoria, B.C.</a>   Do you see how committed I am to advancing functional programming?  I mean, I am willing to leave the heat waves and hurricanes in Texas to spend a whole week in Victoria, B.C. in September.   It will be hard, but I must endure for the cause.</span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=67&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/09/22/im-off/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>
	</item>
		<item>
		<title>The F# CTP is Available</title>
		<link>http://leibnizdream.wordpress.com/2008/08/29/the-f-ctp-is-available/</link>
		<comments>http://leibnizdream.wordpress.com/2008/08/29/the-f-ctp-is-available/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 00:42:22 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[F# News]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=65</guid>
		<description><![CDATA[You can read all about it at the new MSDN F# Developer center:
http://msdn.microsoft.com/en-gb/fsharp/default.aspx
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=65&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>You can read all about it at the new MSDN F# Developer center:</p>
<p><a href="http://msdn.microsoft.com/en-gb/fsharp/default.aspx">http://msdn.microsoft.com/en-gb/fsharp/default.aspx</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/leibnizdream.wordpress.com/65/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/leibnizdream.wordpress.com/65/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/65/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/65/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/65/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=65&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/08/29/the-f-ctp-is-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>
	</item>
		<item>
		<title>Another F# Job</title>
		<link>http://leibnizdream.wordpress.com/2008/06/23/another-f-job/</link>
		<comments>http://leibnizdream.wordpress.com/2008/06/23/another-f-job/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 15:58:47 +0000</pubDate>
		<dc:creator>Chance Coble</dc:creator>
				<category><![CDATA[F# News]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://leibnizdream.wordpress.com/?p=64</guid>
		<description><![CDATA[Ideal Innovations has just posted a position in which F# is a qualifying language.
From the site:
Software Developer
This position is based in Austin, Texas a  division comprised of software developers and specialists in artificial intelligence, biometrics, and range of other advanced technologies who build cutting edge software deployed to some of the most challenging environments [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=64&subd=leibnizdream&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://www.idealinnovations.com">Ideal Innovations</a> has just <a href="http://tbe.taleo.net/NA8/ats/careers/requisition.jsp?org=IDEALINNOVATIONS&amp;cws=1&amp;rid=94">posted a position in which F# is a qualifying language.</a></p>
<p>From the site:</p>
<p align="center"><strong><span style="font-size:small;">Software Developer</span></strong></p>
<p>This position is based in Austin, Texas a  division comprised of software developers and specialists in artificial intelligence, biometrics, and range of other advanced technologies who build cutting edge software deployed to some of the most challenging environments in the world. Our small group works in a very flexible environment; flex-time and telecommuting are available depending on project needs. Our teams are dynamically formed to meet project demands and we value a sense of ownership and responsibility to the end-user. Communication skills are paramount.</p>
<p><strong><span style="font-weight:normal;font-size:10pt;font-family:'Arial','sans-serif';color:black;">We are looking for a .NET developer with experience in Visual Studio 2005/2008 to join our team. Must have experience in one or more of the following: C#, F#, C++ or Java. Must have experience in Windows forms-based and web-based applications. Must have experience with database applications.</span></strong></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/leibnizdream.wordpress.com/64/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/leibnizdream.wordpress.com/64/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/leibnizdream.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/leibnizdream.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/leibnizdream.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/leibnizdream.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/leibnizdream.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/leibnizdream.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/leibnizdream.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/leibnizdream.wordpress.com/64/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/leibnizdream.wordpress.com/64/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/leibnizdream.wordpress.com/64/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=leibnizdream.wordpress.com&blog=412078&post=64&subd=leibnizdream&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://leibnizdream.wordpress.com/2008/06/23/another-f-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/81106d0cb6bd6c2e42931f75c574d15c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">leibnizdream</media:title>
		</media:content>
	</item>
	</channel>
</rss>