<?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>pushbomb &#187; Functional Programming</title>
	<atom:link href="http://team.pushbomb.com/category/functional-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://team.pushbomb.com</link>
	<description>tv programmed by the collective</description>
	<lastBuildDate>Tue, 05 Jan 2010 22:49:48 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='team.pushbomb.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/a08732ed34e6814d5a5513fe8cde5696?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>pushbomb &#187; Functional Programming</title>
		<link>http://team.pushbomb.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://team.pushbomb.com/osd.xml" title="pushbomb" />
	<atom:link rel='hub' href='http://team.pushbomb.com/?pushpress=hub'/>
		<item>
		<title>Reactive Extensions Now Available &#8211; This is Exciting Work</title>
		<link>http://team.pushbomb.com/2009/11/18/reactive-extensions-now-available-this-is-exciting-work/</link>
		<comments>http://team.pushbomb.com/2009/11/18/reactive-extensions-now-available-this-is-exciting-work/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 13:20:07 +0000</pubDate>
		<dc:creator>Damon Wilder Carr</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[Multithreading]]></category>
		<category><![CDATA[Observable]]></category>
		<category><![CDATA[Siverlight]]></category>
		<category><![CDATA[silverlight 3]]></category>
		<category><![CDATA[software as strategic]]></category>
		<category><![CDATA[reactive extensions]]></category>
		<category><![CDATA[rx framework]]></category>
		<category><![CDATA[SilverLight]]></category>

		<guid isPermaLink="false">http://team.pushbomb.com/?p=1918</guid>
		<description><![CDATA[vLabs: Reactive Extensions for .NET (Rx)
&#160;
http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx
&#160;




&#160;

About Rx
Rx is a library for composing asynchronous and event-based programs using observable collections.
The “A” in “AJAX” stand for asynchronous, and indeed modern Web-based and Cloud-based applications are fundamentally asynchronous. In fact, Silverlight bans all blocking networking and threading operations. Asynchronous programming in by no means restricted to Web and Cloud [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=team.pushbomb.com&blog=2366446&post=1918&subd=dcarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<h3>vLabs: Reactive Extensions for .NET (Rx)</h3>
<p>&nbsp;</p>
<p><a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx">http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx</a></p>
<p>&nbsp;</p>
<div>
<div>
<div><img src="http://i.msdn.microsoft.com/ee794896.DevLabs_Rx_Project%28en-us%29.png" alt="" align="Left" /></div>
</div>
<p>&nbsp;</p>
</div>
<h4>About Rx</h4>
<p>Rx is a library for composing asynchronous and event-based programs using observable collections.</p>
<p>The “A” in “AJAX” stand for asynchronous, and indeed modern Web-based and Cloud-based applications are fundamentally asynchronous. In fact, Silverlight bans all blocking networking and threading operations. Asynchronous programming in by no means restricted to Web and Cloud scenarios, however. Traditional desktop applications also have to maintain responsiveness in the face of long latency IO operations and other expensive background tasks.</p>
<p>Another common attribute of interactive applications, whether Web/Cloud or client-based, is that they are event-driven. The user interacts with the application via a GUI that receives event streams asynchronously from the mouse, keyboard, and other inputs.</p>
<p>Rx is a superset of the standard LINQ sequence operators that exposes asynchronous and event-based computations as push-based, observable  collections via the new .NET 4.0 interfaces IObservable&lt;T&gt; and IObserver&lt;T&gt;.  These are the mathematical dual of the familiar IEnumerable&lt;T&gt; and IEnumerator&lt;T&gt; interfaces for pull-based, enumerable collections in the .NET framework.</p>
<p>The IEnumerable&lt;T&gt; and IEnumerator&lt;T&gt; interfaces allow developers to create reusable abstractions to consume and transform values from a wide range of concrete enumerable collections such as arrays, lists, database tables, and XML documents. Similarly, Rx allows programmers to glue together complex event processing and asynchronous computations using LINQ queries over observable collections such as .NET events and APM-based computations, PFx concurrent Task&lt;T&gt;,  the Windows 7 Sensor and Location APIs, SQL StreamInsight temporal event streams , F# first-class events, and async workflows.</p>
<p>Play with Rx, stress it, evaluate it, and tell us what you think.</p>
<br />Posted in F#, Functional Programming, Linq, Multithreading, Observable, silverlight 3, Siverlight, software as strategic Tagged: reactive extensions, rx framework, SilverLight <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dcarr.wordpress.com/1918/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dcarr.wordpress.com/1918/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dcarr.wordpress.com/1918/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dcarr.wordpress.com/1918/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dcarr.wordpress.com/1918/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dcarr.wordpress.com/1918/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dcarr.wordpress.com/1918/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dcarr.wordpress.com/1918/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dcarr.wordpress.com/1918/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dcarr.wordpress.com/1918/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=team.pushbomb.com&blog=2366446&post=1918&subd=dcarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://team.pushbomb.com/2009/11/18/reactive-extensions-now-available-this-is-exciting-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b572cbcda5a17fe984e7dd1ddc9c3d6?s=96&#38;d=&#38;r=PG" medium="image">
			<media:title type="html">pushbomb</media:title>
		</media:content>

		<media:content url="http://i.msdn.microsoft.com/ee794896.DevLabs_Rx_Project%28en-us%29.png" medium="image" />
	</item>
		<item>
		<title>JetBrains Resharper 4.5 is out</title>
		<link>http://team.pushbomb.com/2009/04/16/resharper_4_5_rocks_for_dot_net_c_sharp_silverlight_devs/</link>
		<comments>http://team.pushbomb.com/2009/04/16/resharper_4_5_rocks_for_dot_net_c_sharp_silverlight_devs/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 02:12:43 +0000</pubDate>
		<dc:creator>Damon Wilder Carr</dc:creator>
				<category><![CDATA[C# 3.0 Enhancements]]></category>
		<category><![CDATA[C# 3.0 for Internal DSL]]></category>
		<category><![CDATA[Cannot live Without]]></category>
		<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[Industry News]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[Siverlight]]></category>
		<category><![CDATA[Software Design]]></category>
		<category><![CDATA[Software Futures]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Windows Presentation Foundation]]></category>
		<category><![CDATA[concepts implemented]]></category>
		<category><![CDATA[resharper]]></category>
		<category><![CDATA[software as strategic]]></category>
		<category><![CDATA[.NET 3.5. software craftsman]]></category>
		<category><![CDATA[best addin]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Must-Have]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Resharper]]></category>
		<category><![CDATA[SilverLight]]></category>
		<category><![CDATA[Visual Studio 2008]]></category>

		<guid isPermaLink="false">http://dcarr.wordpress.com/2009/04/16/resharper_4_5_rocks_for_dot_net_c_sharp_silverlight_devs/</guid>
		<description><![CDATA[9 our of 10 studies prove: Resharper make your your hair grow back, your dog come home (yes even if he died), your wife will love you again and your kids will listen to you.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=team.pushbomb.com&blog=2366446&post=1339&subd=dcarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p align="center">&#160;</p>
<p align="center"><a href="http://www.domaindotnet.com/resharper/whatsnew45.html" target="_blank">Click Here</a> to Watch What’s New </p>
<h5>9 our of 10 studies prove: Resharper make your your hair grow back, your dog come home (yes even if he died), your wife will love you again and your kids will listen to you.</h5>
<p>OK perhaps it is not a country music song played backwards. </p>
<blockquote><p>BUT your nuts to even think about wasting all that time not using it. For someone who knows it is people not tools that always win, this is my only exception in 20 years that I will stand behind.</p>
</blockquote>
<p>&#160;</p>
<p>Why stare at a keyboard for hours wondering how to navigate a nasty tangled refactoring you know you must do when you can do the right thing AND make the 5:30 train.</p>
<p>Me? I hit the shift-ctrl-space repeatedly and am shocked when nothing happens. Then I install it and life is good again.</p>
<h4>ReSharper 4.5 Released</h4>
<p>April 8, 2009</p>
<h6>In This Issue</h6>
<p><a href="http://www.jetbrains.com/news/dotnet/news.html#rs45Intro">Introduction</a>     <br /><a href="http://www.jetbrains.com/news/dotnet/news.html#rs45-1">Performance and Memory Usage Improvements</a>     <br /><a href="http://www.jetbrains.com/news/dotnet/news.html#rs45-2">Solution-Wide Code Inspections</a></p>
<p><a href="http://www.jetbrains.com/news/dotnet/news.html#rs45-3">VB9 Support</a>     <br /><a href="http://www.jetbrains.com/news/dotnet/news.html#rs45-4">Extended Naming Style Configuration</a>     <br /><a href="http://www.jetbrains.com/news/dotnet/news.html#rs45-5">Other Enhancements</a></p>
<h5>Introduction</h5>
<p><b>ReSharper 4.5</b> is finally out, so your next productivity upgrade is just a mouse click away!</p>
<p>As announced, the new version features major improvements in performance and memory usage. After all, what is a productivity tool for if not for being agile, robust and responsive?</p>
<p>In addition to focusing on performance enhancements, we also added a number of intelligence features and improvements.</p>
<p>We&#8217;ve prepared a short <a href="http://www.jetbrains.com/resharper/documentation/presentation/rs45/whatsnew-rs45.html">Flash movie</a> to introduce the new features in ReSharper 4.5. Get the hang of things in just a few minutes! </p>
<p>For users of older versions we have a ReSharper 3.0 vs. ReSharper 4.5 <a href="http://www.jetbrains.com/resharper/features/resharper3_vs_resharper45.html">Comparison matrix</a>. <a href="http://dcarr.files.wordpress.com/2009/04/image.png"><img style="display:inline;border-width:0;margin:2px 0;" title="image" border="0" alt="image" align="right" src="http://dcarr.files.wordpress.com/2009/04/image-thumb.png?w=243&#038;h=244" width="243" height="244" /></a></p>
<p>However, if you believe a thousand words say more than a picture does, or even a movie, go ahead and read the descriptions below :)</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p align="right"><strong>Alex Morozov      <br /></strong>NET product marketing manager&#160; <br />JetBrains</p>
<h5>Performance and Memory Usage Improvements</h5>
<p>We have managed to make ReSharper load and work faster and more smoothly in general, particularly on big (and we mean BIG) solutions:</p>
<ul>
<li>Wall-time measurements of solution loading show 20 to 40 percent acceleration until the solution is ready for code editing. </li>
<li>Web site loading time has also been reduced by a third. </li>
<li>For instance, a certain mixed-language solution consisting of about 15 thousand classes now takes only 70 seconds to load, and this includes making every ReSharper feature available. </li>
</ul>
<p>The list of significantly accelerated operations includes:</p>
<ul>
<li>renaming symbols </li>
<li>finding commonly used symbols </li>
<li>creating symbols from usage </li>
<li>analyzing large XAML files. </li>
</ul>
<p>We&#8217;ve also cut down the volume of memory resources required to analyze jumbo autogenerated code files, which should especially benefit those who work with ASP.NET and LINQ to SQL. </p>
<h5>Solution-Wide Code Inspections</h5>
<p>To enable you to detect unused non-private members on the fly, we have enlisted the help of our ever-improving solution-wide analysis. We have introduced a set of specialized code inspections that only work when you let ReSharper analyze your whole solution. They help you discover:</p>
<ul>
<li>Unused non-private declarations </li>
<li>Unused return values of non-private methods </li>
<li>Unaccessed non-private fields </li>
<li>Unused parameters in non-private members </li>
<li>Abstract or virtual events that are never invoked </li>
<li>Unassigned fields </li>
<li>Members and types that can be made internal instead of public </li>
</ul>
<p>Look for these inspections in your code and on the Marker Bar, highlighted as warnings or suggestions. In addition, new code annotations are available that you can use to mark certain unused non-private types and members to prevent ReSharper from fussing about them.</p>
<h5>VB9 Support – We can forgive this transgression (Damon)</h5>
<p> Visual Basic .NET developers can now benefit from VB9 language support that includes implicitly typed local variables, object initializers, anonymous types, extension methods, lambda expressions, partial methods, and embedded XML. VB9 support is all around you, courtesy of new context actions, code completion, refactorings, and Parameter Info, among other supporting features.<br />
<h5>Extended Naming Style Configuration</h5>
<p>Now you can define custom naming style settings for different languages and symbols including:</p>
<ul>
<li>types </li>
<li>namespaces </li>
<li>interfaces </li>
<li>parameters </li>
<li>method properties and events </li>
<li>static and instance fields, etc. </li>
</ul>
<p>For every kind of symbol, you can configure one of five casing options, prefixes and suffixes, variations for different access rights, abbreviations to preserve, or enable naming inspections. As a result, you can precisely align the way ReSharper completes and generates code with your specific coding guidelines.</p>
<h5>Other Enhancements</h5>
<ul>
<li><b>Go to Implementation</b> &#8211; This new navigation feature lets you jump from usage of a base type or member to any of its end implementations, bypassing intermediate steps in the inheritance chain. </li>
<li><b>New and Improved Refactorings</b> &#8211; ReSharper 4.5 has added Inline Field to its family of Inline refactorings. Rename refactoring now provides name completion, and some of the other refactorings were thoroughly refactored themselves, to make them perform faster. </li>
<li><b>Native MSTest Support</b> &#8211; Initially available through VstsUnit Plugin and then Gallio, MSTest support has finally made its way to being provided natively in ReSharper, on par with nUnit. </li>
<li><b>Wider Cross-Language Capabilities</b> &#8211; Quick-fixes and context actions work better in many cross-language scenarios: for example, you can extend a control written in VB.NET+XAML by choosing &quot;create from usage&quot; right from a C# usage. Add increased coverage for XAML and ASP.NET, and you get a substantial package of improvements. </li>
<li><b>Smoother Language and Framework Support</b> &#8211; Following the tradition of ReSharper 4.1, we have improved compatibility with F#, Compact Framework, Silverlight 2, and other languages and tools. </li>
</ul>
<p>Grab your all-new productivity &#8211; download ReSharper 4.5 now at <a href="http://www.jetbrains.com/resharper/download/index.html">http://www.jetbrains.com/resharper/download</a>. </p>
<p>ReSharper 4.5 is provided as a free upgrade from ReSharper 4.0. If you own an older version, please contact us to check your upgrade availability at <a href="mailto:sales@jetbrains.com">sales@jetbrains.com</a>. </p>
<p>&#160;</p>
<h4>JetBrains Team</h4>
<ul>
<li>
<p><a href="http://www.jetbrains.com/company/people/Anchipolevsky_Sergey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Sergey_Anchipolevsky_small.gif" />Sergey           <br />Anchipolevsky</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Alshannikov_Igor.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Alshannikov_Igor_small.gif" />Igor           <br />Alshannikov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Anisimov_Alexander.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Anisimov_Alexander_small.gif" />Alexander           <br />Anisimov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Avdeev_Dmitry.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Avdeev_Dmitry_small.gif" />Dmitry           <br />Avdeev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Baranov_Sergey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Sergey_Baranov_small.gif" />Sergey           <br />Baranov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Belyaev_Yury.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Yury_Belyaev_small.gif" />Yury           <br />Belyaev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Belyaeva_Natalia.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Natalia_Belyaeva_small.gif" />Natalia           <br />Belyaeva</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Bukreeva_Elena.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Bukreeva_Elena_small.gif" />Elena           <br />Bukreeva</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Bulenkov_Konstantin.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Bulenkov_Konstantin_small.gif" />Bulenkov           <br />Konstantin</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Charif_Jana.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Jana_Charif_small.gif" />Jana           <br />Charif</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Chashnikov_Nikolay.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Nikolay_Chashnikov_small.gif" />Nikolay           <br />Chashnikov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Alexander_Chernikov.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/soon.gif" />Alexander           <br />Chernikov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Chernyatchik_Roman.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Roman_Chernyatchik_small.gif" />Roman           <br />Chernyatchik</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Coox_Sergey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Coox_Sergey_small.gif" />Sergey           <br />Coox</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Dmitriev_Sergey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Sergey_Dmitriev_small.gif" />Sergey           <br />Dmitriev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Dumov_Ilia.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Ilia_Dumov_small.gif" />Ilia           <br />Dumov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Falk_Kirill.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Kirill_Falk_small.gif" />Kirill           <br />Falk</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Gerasimov_Michael.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Michael_Gerasimov_small.gif" />Michael           <br />Gerasimov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Golovachev_Sergey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Sergey_Golovachev_small.gif" />Sergey           <br />Golovachev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Gopachenko_Alexey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Alexey_Gopachenko_small.gif" />Alexey           <br />Gopachenko</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Gromov_Peter.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Gromov_Peter_small.gif" />Peter           <br />Gromov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Michaela_Hroncova.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Michaela_Hroncova_small.gif" />Michaela           <br />Hroncová</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Jemerov_Dmitry.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Dmitry_Jemerov_small.gif" />Dmitry           <br />Jemerov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Khalusova_Maria.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Khalusova_Maria_small.gif" />Maria           <br />Khalusova</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Kipiatkov_Valentin.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Valentin_Kipiatkov_small.gif" />Valentin           <br />Kipiatkov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Konopko_Cyril.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Konopko_Kirill_small.gif" />Cyril           <br />Konopko</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Kozlova_Anna.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/soon.gif" />Anna           <br />Kozlova</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Kropotov_Mikhail.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Mikhail_Kropotov_small.gif" />Mikhail           <br />Kropotov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Kudelevsky_Eugene.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Kudelevsky_Eugene_small.gif" />Eugene           <br />Kudelevsky</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Kudravtsev_Alexey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Alexey_Kudravtsev_small.gif" />Alexey           <br />Kudravtsev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Lobacheva_Olga.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Lobacheva_Olga_small.gif" />Olga           <br />Lobacheva</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Lukianov_Vyacheslav.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Vyacheslav_Lukianov_small.gif" />Vyacheslav           <br />Lukianov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Makeev_Anton.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Anton_Makeev_small.gif" />Anton           <br />Makeev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Malishev_Egor.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Malishev_Egor_small.gif" />Egor           <br />Malyshev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Marakulina_Maria.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Maria_Marakulina_small.gif" />Maria           <br />Marakulina</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Maximov_Kirill.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Kirill_Maximov_small.gif" />Kirill           <br />Maximov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Maximova_Sasha.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Sasha_Maximova_small.gif" />Sasha           <br />Maximova</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Megorskaya_Irina.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/soon.gif" />Irina           <br />Megorskaya</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Morawiecova_Lucie.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Morawiecova_Lucie_small.gif" />Lucie           <br />Morawiecova</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Morozov_Alexander.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Morozov_Alexander_small.gif" />Alexander           <br />Morozov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Mossienko_Maxim.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Mossienko_Maxim_small.gif" />Maxim           <br />Mossienko</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Musienko_Ekaterina.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Musienko_Ekaterina_small.gif" />Ekaterina           <br />Musienko</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Oreshnikova_Ann.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Ann_Oreshnikova_small.gif" />Ann           <br />Oreshnikova</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Pasynkov_Eugene.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Eugene_Pasynkov_small.gif" />Eugene           <br />Pasynkov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Pech_Vaclav.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Vaclav_Pech_small.gif" />Vaclav           <br />Pech</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Pegov_Alexey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Alexey_Pegov_small.gif" />Alexey           <br />Pegov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Petrenko_Eugene.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Petrenko_Eugene_small.gif" />Eugene           <br />Petrenko</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Petrovskaya_Irina.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Irina_Petrovskaya_small.gif" />Irina           <br />Petrovskaya</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Pilin_Mikhail.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Mikhail_Pilin_small.gif" />Mikhail           <br />Pilin</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Repina_Julia.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Julia_Repina_small.gif" />Julia           <br />Repina</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Revyakina_Elizaveta.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Elizaveta_Revyakina_small.gif" />Elizaveta           <br />Revyakina</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Ryzhenkov_Ilya.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Ryzhenkov_Ilya_small.gif" />Ilya           <br />Ryzhenkov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Serebryansky_Andrew.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Serebryansky_Andrew_small.gif" />Andrew           <br />Serebryansky</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Sergey_Ilya.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Sergey_Ilya_small.gif" />Ilya           <br />Sergey</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Shafirov_Maxim.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Maxim_Shafirov_small.gif" />Maxim           <br />Shafirov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Slavina_Tatiana.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Tatiana_Slavina_small.gif" />Tatiana           <br />Slavina</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Smirnova_Olesya.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Olesya_Smirnova_small.gif" />Olesya           <br />Smirnova</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Solomatov_Konstantin.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Konstantin_Solomatov_small.gif" />Konstantin           <br />Solomatov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Stepanov_Oleg.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Oleg_Stepanov_small.gif" />Oleg           <br />Stepanov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Sher_Pavel.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Sher_Pavel_small.gif" />Pavel           <br />Sher</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Shliakhovetskaja_Ekaterina.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Shliakhovetskaja_Ekaterina_small.gif" />Ekaterina           <br />Shliakhovetskaja</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Shpynov_Oleg.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Shpynov_Oleg_small.gif" />Oleg           <br />Shpynov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Shrago_Gregory.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Shrago_Gregory_small.gif" />Gregory           <br />Shrago</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Toporov_Eugene.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Eugene_Toporov_small.gif" />Eugene           <br />Toporov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Udov_George.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Udov_George_small.gif" />George           <br />Udov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Vasiliev_Sergey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Sergey_Vasiliev_small.gif" />Sergey           <br />Vasiliev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Yaremych_Natalie.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Natalie_Yaremych_small.gif" />Natalie           <br />Yaremych</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Yarko_Yegor.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Yarko_Yegor_small.gif" />Yegor           <br />Yarko</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Zambalayev_Timur.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Zambalayev_Timur_small.gif" />Timur           <br />Zambalayev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Zhukov_Sergey.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Sergey_Zhukov_small.gif" />Sergey           <br />Zhukov</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Zhuravlev_Eugene.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Eugene_Zhuravlev_small.gif" />Eugene           <br />Zhuravlev</a></p>
</li>
<li>
<p><a href="http://www.jetbrains.com/company/people/Alexander_Zverev.html"><img alt="photo" src="http://www.jetbrains.com/company/people/photos/Alexander_Zverev_small.gif" />Alexander           <br />Zverev</a></p>
</li>
</ul>
<div class="wlWriterHeaderFooter" style="text-align:right;margin:0;padding:4px 0;"><a href="http://digg.com/submit?url=http%3a%2f%2fdcarr.wordpress.com%2f2009%2f04%2f16%2fresharper_4_5_rocks_for_dot_net_c_sharp_silverlight_devs%2f&amp;title=JetBrains+Resharper+4.5+is+out"><img src="http://digg.com/img/badges/100x20-digg-button.png" width="100" height="20" alt="Digg This" title="Digg This" border="0" style="border:0;" /></a></div>
<br />Posted in C# 3.0 Enhancements, C# 3.0 for Internal DSL, Cannot live Without, concepts implemented, Functional Programming, Industry News, Linq, resharper, Siverlight, software as strategic, Software Design, Software Futures, Technology, Tips and Tricks, Visual Studio 2010, Windows Presentation Foundation Tagged: .NET 3.5. software craftsman, best addin, C#, Must-Have, Refactoring, Resharper, SilverLight, Visual Studio 2008 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dcarr.wordpress.com/1339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dcarr.wordpress.com/1339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dcarr.wordpress.com/1339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dcarr.wordpress.com/1339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dcarr.wordpress.com/1339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dcarr.wordpress.com/1339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dcarr.wordpress.com/1339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dcarr.wordpress.com/1339/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dcarr.wordpress.com/1339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dcarr.wordpress.com/1339/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=team.pushbomb.com&blog=2366446&post=1339&subd=dcarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://team.pushbomb.com/2009/04/16/resharper_4_5_rocks_for_dot_net_c_sharp_silverlight_devs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b572cbcda5a17fe984e7dd1ddc9c3d6?s=96&#38;d=&#38;r=PG" medium="image">
			<media:title type="html">pushbomb</media:title>
		</media:content>

		<media:content url="http://dcarr.files.wordpress.com/2009/04/image-thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Sergey_Anchipolevsky_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Alshannikov_Igor_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Anisimov_Alexander_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Avdeev_Dmitry_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Sergey_Baranov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Yury_Belyaev_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Natalia_Belyaeva_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Bukreeva_Elena_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Bulenkov_Konstantin_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Jana_Charif_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Nikolay_Chashnikov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/soon.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Roman_Chernyatchik_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Coox_Sergey_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Sergey_Dmitriev_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Ilia_Dumov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Kirill_Falk_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Michael_Gerasimov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Sergey_Golovachev_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Alexey_Gopachenko_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Gromov_Peter_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Michaela_Hroncova_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Dmitry_Jemerov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Khalusova_Maria_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Valentin_Kipiatkov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Konopko_Kirill_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/soon.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Mikhail_Kropotov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Kudelevsky_Eugene_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Alexey_Kudravtsev_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Lobacheva_Olga_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Vyacheslav_Lukianov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Anton_Makeev_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Malishev_Egor_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Maria_Marakulina_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Kirill_Maximov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Sasha_Maximova_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/soon.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Morawiecova_Lucie_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Morozov_Alexander_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Mossienko_Maxim_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Musienko_Ekaterina_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Ann_Oreshnikova_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Eugene_Pasynkov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Vaclav_Pech_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Alexey_Pegov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Petrenko_Eugene_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Irina_Petrovskaya_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Mikhail_Pilin_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Julia_Repina_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Elizaveta_Revyakina_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Ryzhenkov_Ilya_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Serebryansky_Andrew_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Sergey_Ilya_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Maxim_Shafirov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Tatiana_Slavina_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Olesya_Smirnova_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Konstantin_Solomatov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Oleg_Stepanov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Sher_Pavel_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Shliakhovetskaja_Ekaterina_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Shpynov_Oleg_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Shrago_Gregory_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Eugene_Toporov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Udov_George_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Sergey_Vasiliev_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Natalie_Yaremych_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Yarko_Yegor_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Zambalayev_Timur_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Sergey_Zhukov_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Eugene_Zhuravlev_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/company/people/photos/Alexander_Zverev_small.gif" medium="image">
			<media:title type="html">photo</media:title>
		</media:content>

		<media:content url="http://digg.com/img/badges/100x20-digg-button.png" medium="image">
			<media:title type="html">Digg This</media:title>
		</media:content>
	</item>
		<item>
		<title>F# : absolute power corrupts absolutely</title>
		<link>http://team.pushbomb.com/2008/10/07/f-absolute-power-corrupts-absolutely-but-f-removes-side-effect-corruption-so-uh-there-goes-my-analogy0/</link>
		<comments>http://team.pushbomb.com/2008/10/07/f-absolute-power-corrupts-absolutely-but-f-removes-side-effect-corruption-so-uh-there-goes-my-analogy0/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 05:36:07 +0000</pubDate>
		<dc:creator>Damon Wilder Carr</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[.NET 3.5]]></category>
		<category><![CDATA[C# 3.0]]></category>
		<category><![CDATA[Lambada]]></category>

		<guid isPermaLink="false">http://dcarr.wordpress.com/2008/10/07/f-absolute-power-over-your-code-corrupts-absolutely-but-f-removes-side-effect-corruption-so-uh-there-goes-my-analogy/</guid>
		<description><![CDATA[// F# Tutorial File   sample code to guide you through the primitives of the F# language.  
// For a larger collection of F# samples, see:     http://go.microsoft.com/fwlink/?LinkID=124614<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=team.pushbomb.com&blog=2366446&post=998&subd=dcarr&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblog.domaindotnet.com%2f2008%2f10%2f07%2ff-absolute-power-over-your-code-corrupts-absolutely-but-f-removes-side-effect-corruption-so-uh-there-goes-my-analogy%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblog.domaindotnet.com%2f2008%2f10%2f07%2ff-absolute-power-over-your-code-corrupts-absolutely-but-f-removes-side-effect-corruption-so-uh-there-goes-my-analogy%2f" border="0" alt="kick it on DotNetKicks.com" /></a></p>
<p>&#8230;.but F# removes side-effect corruption so uh.. there goes my analogy&#8230;&#8230;</p>
<p>Starting from scratch with F#? Click <a href="http://blogs.msdn.com/chrsmith/archive/2008/05/02/f-in-20-minutes-part-i.aspx">here</a>.</p>
<p><a href="http://en.wikipedia.org/wiki/Functional_Programming_" target="_blank">Functional programming </a>is so addictive. It reminds me when I could code with no team, no deadline, no broken processes or cultures to navigate. I do hope this becomes a common option for general development or at least C# continues to <em><a href="http://en.wikipedia.org/wiki/Borg_(Star_Trek)" target="_blank">borg </a></em>functional ideas…</p>
<p><a href="http://en.wikipedia.org/wiki/Borg_(Star_Trek)#Assimilation"><br />
</a></p>
<p>For a larger collection of F# samples, see:</p>
<p><a href="http://go.microsoft.com/fwlink/?LinkID=124614">http://go.microsoft.com/fwlink/?LinkID=124614</a></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// F# Tutorial File<br />
//<br />
// This file contains sample code to guide you through the<br />
// primitives of the F# language.<br />
//<br />
// Contents:<br />
//   &#8211; Simple computations<br />
//   &#8211; Functions on integers<br />
//   &#8211; <a href="http://en.wikipedia.org/wiki/Tuples_" target="_blank">Tuples </a><br />
//   &#8211; Booleans<br />
//   &#8211; Strings<br />
//   &#8211; Lists<br />
//   &#8211; Arrays<br />
//   &#8211; More Collections<br />
//   &#8211; Functions<br />
//   &#8211; Types: unions<br />
//   &#8211; Types: records<br />
//   &#8211; Types: classes<br />
//   &#8211; Types: interfaces<br />
//   &#8211; Types: classes with interface implementations<br />
//   &#8211; Printing </span></p>
<p>// Turn on the lightweight syntax<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:blue;">#light </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// open some standard namespaces<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">open</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">System </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Simple computations<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
// Here are some simple computations.  Note how code can be documented<br />
// with &#8216;///&#8217; comments.  Hover over any reference to a variable to<br />
// see its documentation. </span></p>
<p>/// A very simple constant integer<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">int1 = 1 </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// A second very simple constant integer<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">int2 = 2 </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// Add two integers<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">int3 = int1 + int2 </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Functions on integers<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p>/// A function on integers<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">f x = 2*x*x &#8211; 5*x + 3 </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// The result of a simple computation<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">result = f (int3 + 4) </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// Another function on integers<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">increment x = x + 1 </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// Compute the factorial of an integer<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let rec </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">factorial n =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">if</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">n=0</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">then</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">1</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">else</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">n * factorial (n-1) </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// Compute the highest-common-factor of two integers<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let rec </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">hcf a b = </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// notice: 2 parameters separated by spaces<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">if</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">a=0</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">then</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">b<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">elif </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">a&lt;b</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">then</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">hcf a (b-a) </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// notice: 2 arguments separated by spaces<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">else</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">hcf (a-b) b<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// note: function arguments are usually space separated<br />
// note: &#8216;let rec&#8217; defines a recursive function </span><br />
// Tuples<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>// A simple tuple of integers<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">pointA = (1, 2, 3) </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// A simple tuple of an integer, a string and a double-precision floating point number<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">dataB = (1,</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;fred&#8221;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">, 3.1415) </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// A function that swaps the order of two values in a tuple<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Swap (a, b) = (b, a) </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Booleans<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p>/// A simple boolean value<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">boolean1 =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">true </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// A second simple boolean value<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">boolean2 =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">false </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// Compute a new boolean using ands, ors, and nots<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">boolean3 = not boolean1 &amp;&amp; (boolean2 ||</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">false</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">) </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Strings<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p>/// A simple string<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">stringA  =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;Hello&#8221; </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// A second simple string<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">stringB  =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;world&#8221; </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// &#8220;Hello world&#8221; computed using string concatentation<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">stringC  = stringA +</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8221; &#8220;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">+ stringB </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// &#8220;Hello world&#8221; computed using a .NET library function<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">stringD = String.Join(</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8221; &#8220;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">,[| stringA; stringB |])<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Try re-typing the above line to see intellisense in action<br />
// Note, ctrl-J on (partial) identifiers re-activates it </span></p>
<p>// Functional Lists<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>/// The empty list<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">listA = [ ] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// A list with 3 integers<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">listB = [ 1; 2; 3 ] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// A list with 3 integers, note :: is the &#8216;cons&#8217; operation<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">listC = 1 :: [2; 3] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// Compute the sum of a list of integers using a recursive function<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let rec </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">SumList xs =<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">match</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">xs </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">with<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">| [] </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">0<br />
| y::ys </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">y + SumList ys </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// Sum of a list<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">listD = SumList [1; 2; 3] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// The list of integers between 1 and 10 inclusive<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">oneToTen = [1..10] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// The squares of the first 10 integers<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">squaresOfOneToTen = [</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">for</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">x</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">in</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">0..10</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">x*x ] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Mutable Arrays<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p>/// Create an array<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">arr = Array.create 4</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;hello&#8221;<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">arr.[1] &lt;-</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;world&#8221;<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">arr.[3] &lt;-</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;don&#8221; </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// Compute the length of the array by using an instance method on the array object<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">arrLength = arr.Length </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Extract a sub-array using slicing notation<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">front = arr.[0..2] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// More Collections<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p>/// A dictionary with integer keys and string values<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">lookupTable = dict [ (1,</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">"One"</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">); (2,</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">"Two"</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">) ] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">oneString = lookupTable.[1] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// For some other common data structures, see:<br />
//   System.Collections.Generic<br />
//   Microsoft.FSharp.Collections<br />
//   Microsoft.FSharp.Collections.Seq<br />
//   Microsoft.FSharp.Collections.Set<br />
//   Microsoft.FSharp.Collections.Map </span></p>
<p>// Functions<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>/// A function that squares its input<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Square x = x*x </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Map a function across a list of values<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">squares1 = List.map Square [1; 2; 3; 4]<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">squares2 = List.map (</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">fun</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">x</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">x*x) [1; 2; 3; 4] </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Pipelines<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">squares3 = [1; 2; 3; 4] |&gt; List.map (</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">fun</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">x</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">x*x)<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">SumOfSquaresUpTo n =<br />
[1..n]<br />
|&gt; List.map Square<br />
|&gt; List.sum </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Types: unions<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">type</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Expr =<br />
| Num</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">of</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">int<br />
| Add</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">of</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Expr * Expr<br />
| Mul </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">of</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Expr * Expr<br />
| Var</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">of</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">string</span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let rec </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Evaluate (env:Map&lt;string,int&gt;) exp =<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">match</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">exp</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">with<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">| Num n</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">n<br />
| Add (x,y)</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Evaluate env x + Evaluate env y<br />
| Mul (x,y)</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Evaluate env x * Evaluate env y<br />
| Var id </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">env.[id]</span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">envA = Map.of_list [</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">"a"</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">,1 ;<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">"b"</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">,2 ;<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">"c"</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">,3 ]</span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">expT1 = Add(Var</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;a&#8221;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">,Mul(Num 2,Var</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;b&#8221;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">))<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">resT1 = Evaluate envA expT1 </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Types: records<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">type</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Card = { Name  : string;<br />
Phone : string;<br />
Ok    : bool }</span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">cardA = { Name =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;Alf&#8221;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">; Phone =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;(206) 555-8257&#8243;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">; Ok =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">false</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">}<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">cardB = { cardA </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">with</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Phone =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;(206) 555-4112&#8243;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">; Ok =</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">true</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">}<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">ShowCard c =<br />
c.Name +</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8221; Phone: &#8220;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">+ c.Phone + (</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">if</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">not c.Ok</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">then &#8221; (unchecked)&#8221; else &#8220;&#8221;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">) </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Types: classes<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p>/// A 2-dimensional <a href="http://en.wikipedia.org/wiki/Vector" target="_blank">vector</a><br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">type</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Vector2D(dx:float, dy:float) =<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// The pre-computed length of the vector<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">length = sqrt(dx*dx + dy*dy)<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// The displacement along the X-axis<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">member</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">v.DX = dx<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// The displacement along the Y-axis<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">member</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">v.DY = dy<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// The length of the vector<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">member</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">v.Length = length<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Re-scale the vector by a constant<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">member</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">v.Scale(k) = Vector2D(k*dx, k*dy)<br />
</span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Types: interfaces<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">type</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">IPeekPoke =<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">abstract</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Peek: unit</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">int<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">abstract</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Poke: int</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">-&gt;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">unit </span><br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Types: classes with interface implementations<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p>/// A widget which counts the number of times it is poked<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">type</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">Widget(initialState:int) =<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// The internal state of the Widget<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let mutable</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">state = initialState </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Implement the IPeekPoke interface<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">interface</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">IPeekPoke </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">with<br />
member</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">x.Poke(n) = state &lt;- state + n<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">member</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">x.Peek() = state</span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">/// Has the Widget been poked?<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">member</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">x.HasBeenPoked = (state &lt;&gt; 0) </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">widget = Widget(12) :&gt; IPeekPoke </span></p>
<p>widget.Poke(4)<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">let</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">peekResult = widget.Peek() </span><br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Printing<br />
// &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; </span></p>
<p>// Print an integer<br />
<span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">printfn </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;peekResult = %d&#8221;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">peekResult </span></p>
<p><span style="background:#0a0a0a none repeat scroll 0 0;color:#e388dd;">// Print a result using %A for generic printing<br />
</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">printfn </span><span style="background:#0a0a0a none repeat scroll 0 0;color:#ecc03e;">&#8220;listC = %A&#8221;</span><span style="background:#0a0a0a none repeat scroll 0 0;color:#fffefd;">listC<br />
</span></p>
<h3>Related Posts</h3>
<div class="wlw_related_posts">from tag <a href="http://del.icio.us/damoncarr/F#">F#</a></p>
<ul>
<li><a href="http://code.msdn.microsoft.com/solverfoundationfs1">F# Optimization Modeling Language Utilizing Microsoft Solver Foundation &#8211; Home</a></li>
</ul>
<p>from tag <a href="http://del.icio.us/damoncarr/Lambada">Lambada</a></p>
<ul>
<li><a href="http://blog.domaindotnet.com/2008/07/24/linq-c-30-enumerable-extension-method-reference/">Linq C# 3.0 Enumerable Extension Method Reference « don’t give up on software just yet</a></li>
</ul>
<p><a href="http://del.icio.us/damoncarr/Lambada">(more..)</a></div>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4c209aba-3e85-4dd8-8243-04f85f0ad892" class="wlWriterSmartContent" style="display:inline;float:none;margin:0;padding:0;">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/F%23">F#</a>,<a rel="tag" href="http://technorati.com/tags/Functional+Programming">Functional Programming</a>,<a rel="tag" href="http://technorati.com/tags/C%23+3.0">C# 3.0</a>,<a rel="tag" href="http://technorati.com/tags/Lambada">Lambada</a>,<a rel="tag" href="http://technorati.com/tags/.NET+3.5">.NET 3.5</a></div>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6535614f-ef02-4125-9080-869f08573498" class="wlWriterSmartContent" style="display:inline;float:none;margin:0;padding:0;">del.icio.us Tags: <a rel="tag" href="http://del.icio.us/popular/F%23">F#</a>,<a rel="tag" href="http://del.icio.us/popular/Functional+Programming">Functional Programming</a>,<a rel="tag" href="http://del.icio.us/popular/C%23+3.0">C# 3.0</a>,<a rel="tag" href="http://del.icio.us/popular/Lambada">Lambada</a>,<a rel="tag" href="http://del.icio.us/popular/.NET+3.5">.NET 3.5</a></div>
<p><a href="http://11011.net/software/vspaste"></a></p>
<div class="wlWriterHeaderFooter" style="text-align:left;margin:0;padding:4px 0;"><a href="http://digg.com/submit?url=http%3a%2f%2fdcarr.wordpress.com%2f2008%2f10%2f07%2ff-absolute-power-over-your-code-corrupts-absolutely-but-f-removes-side-effect-corruption-so-uh-there-goes-my-analogy%2f&amp;title=F%23+%3a+absolute+power+corrupts+absolutely%2c+but+F%23+removes+side-effect+corruption+so+uh..+there+goes+my+analogy"><img style="border:0;" title="Digg This" src="http://digg.com/img/badges/100x20-digg-button.png" border="0" alt="Digg This" width="100" height="20" /></a></div>
<br />Posted in F#, Functional Programming Tagged: .NET 3.5, C# 3.0, F#, Functional Programming, Lambada <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dcarr.wordpress.com/998/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dcarr.wordpress.com/998/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dcarr.wordpress.com/998/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dcarr.wordpress.com/998/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dcarr.wordpress.com/998/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dcarr.wordpress.com/998/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dcarr.wordpress.com/998/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dcarr.wordpress.com/998/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dcarr.wordpress.com/998/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dcarr.wordpress.com/998/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=team.pushbomb.com&blog=2366446&post=998&subd=dcarr&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://team.pushbomb.com/2008/10/07/f-absolute-power-corrupts-absolutely-but-f-removes-side-effect-corruption-so-uh-there-goes-my-analogy0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7b572cbcda5a17fe984e7dd1ddc9c3d6?s=96&#38;d=&#38;r=PG" medium="image">
			<media:title type="html">pushbomb</media:title>
		</media:content>

		<media:content url="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblog.domaindotnet.com%2f2008%2f10%2f07%2ff-absolute-power-over-your-code-corrupts-absolutely-but-f-removes-side-effect-corruption-so-uh-there-goes-my-analogy%2f" medium="image">
			<media:title type="html">kick it on DotNetKicks.com</media:title>
		</media:content>

		<media:content url="http://digg.com/img/badges/100x20-digg-button.png" medium="image">
			<media:title type="html">Digg This</media:title>
		</media:content>
	</item>
	</channel>
</rss>