<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.atalasoft.com/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Rick Minerich's Development Wonderland : parallelism</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/parallelism/default.aspx</link><description>Tags: parallelism</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>F# Discoveries This Week 01/13/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx</link><pubDate>Wed, 13 Jan 2010 16:59:05 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20033</guid><dc:creator>RickM</dc:creator><slash:comments>2</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20033.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20033</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20033</wfw:comment><description>&lt;p&gt;Back again this week with a fresh batch of F# Posts, Videos and Events.&amp;#160; I’ve been enjoying Matthew Podwysocki’s “Much Ado About Monads” series quite a lot.&amp;#160; They are well worth checking out for beginner and advanced alike. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Events&lt;/h1&gt;  &lt;p align="left"&gt;If you would like to see your event here, send me an email via the link at the top of the page.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Rick Minerich&lt;/strong&gt; - &lt;a href="http://www.technologyusersgroup.org/2010/01/13/next-meeting-january-27-2009/"&gt;Charleston SC Technology Users Group&lt;/a&gt; on the 27th of January (check out the &lt;a href="http://www.technologyusersgroup.org/wp-content/uploads/2009/10/flyer.jpg"&gt;awesome flier&lt;/a&gt;)&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Steffen Forkmann&lt;/strong&gt; - &lt;a href="http://www.navision-blog.de/2010/01/11/terminverschiebung-des-f-vortrages-in-bad-homburg/"&gt;Frankfurt .NET Usergroup&lt;/a&gt; on the 21st of January&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Posts&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2010/01/09/async-and-parallel-design-patterns-in-f-parallelizing-cpu-and-i-o-computations.aspx"&gt;Don Syme’s Async and Parallel Design Patterns in F#: Parallelizing CPU and I/O Computations&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;One simple way to write parallel and reactive programs is with F# async expressions. In this and future posts, I will cover some of the basic ways in which you can use F# async programming - roughly speaking, these are design patterns enabled by F# async programming.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2010/01/08/f-interactive-tips-and-tricks-visualizing-data-in-a-grid.aspx"&gt;Don Syme’s F# Interactive Tips and Tricks: Visualizing Data in a Grid&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The demos in my F# talks use a number of coding snippets to acquire, generate and display data interactively. Some of these little snippets are not so well known, but they are useful :-)&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2010/01/08/some-tips-and-tricks-for-formatting-data-in-f-interactive-and-a-in-sprintf-printf-fprintf.aspx"&gt;Don Syme’s F# Interactive Tips and Tricks: Formatting Data using AddPrinter, AddPrintTransformer and %A in sprintf/printf/fprintf&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Here are some tips and tricks for formatting data in F# Interactive. This is not meant to be a comprehensive guide, just enough to get you started. Please let me know if you need more examples.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/01/07/much-ado-about-monads-reader-edition.aspx"&gt;Matthew Podwysocki’s Much Ado About Monads – Reader Edition&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;So, our ultimate goal would be instead to have our environment set once and then read from it implicitly.&amp;#160; We still want to keep what we have here in terms of our script, but change the underlying mechanism for how it happens.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://skillsmatter.com/podcast/open-source-dot-net/f-and-units-of-measure-for-technical-computing"&gt;Anton Schwaighofer’s SkillsMatter.com talk: F# and Units-of-measure for Technical Computing&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I will start by giving an introduction to units-of-measure and their implementation in F#. I'll work through smaller and larger code examples that make use of units-of-measure.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.msdev.com/Directory/Description.aspx?eventId=1649"&gt;Nancy Strickland’s MSDev.com Training Session on F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Visual Studio 2010 includes a new programming language, F#. This session explains and provides a walk-through demonstration of basic programming in F#.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Julien Ortin continues his series on Purely Functional Data Structures with a &lt;a href="http://lepensemoi.free.fr/index.php/2010/01/07/lazy-pairing-heap"&gt;Lazy Pairing Heap&lt;/a&gt;, a &lt;a href="http://lepensemoi.free.fr/index.php/2010/01/07/real-time-queue"&gt;Real-time Queue&lt;/a&gt; and &lt;a href="http://lepensemoi.free.fr/index.php/2010/01/07/bottom-up-merge-sort"&gt;Bottom-up Merge Sort&lt;/a&gt;&lt;/h5&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This post describes the F# implementation of the &amp;lt;insert data structure here&amp;gt; from Chris Okasaki’s “Purely functional data structures”.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bugsquash.blogspot.com/2010/01/translating-haskell-to-f-and-other.html"&gt;Mauricio Scheffer’s Translating Haskell to F# and other considerations&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;BUT, syntactic similarity does not imply that they're semantically the same. There's a fundamental difference from the original code: Haskell is a lazy language, while F#, coming from the ML-family, does eager evaluation.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.markhneedham.com/blog/2010/01/12/f-refactoring-to-pattern-matching/"&gt;Mark Needham’s F#: Refactoring to pattern matching&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I was looking through some of the F# code I've written recently and I realised that I was very much writing C# in F# with respect to the number of if statements I've been using.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.markhneedham.com/blog/2010/01/10/roy-osheroves-tdd-kata-an-f-attempt/"&gt;Mark Needham’s F# attempt at Roy Osherove’s TDD Kata&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As I've mentioned in a few of my recent posts I've been having &lt;/em&gt;&lt;em&gt;another go&lt;/em&gt;&lt;em&gt; at Roy Osherove's TDD Kata but this time in F#.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharpcode.blogspot.com/2010/01/weak-subscribe-to-iobservable-source.html"&gt;Holoed’s Weak Subscribe to an IObservable Source&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;A code snippet describing how to subscribe to an event via a weak reference.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://codecube.net/2010/01/resource-pool-in-f/"&gt;Erik Schulz’s Resource Pool in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I’ve been toying around with F# recently, it’s good to see an example that you can easily compare and contrast with the C# version.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.ademiller.com/blogs/tech/2010/01/gotchas-common-traps-for-the-f-n00b"&gt;Ade Miller’s Gotchas: Common Traps for the F# n00b&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I spent a bunch of time over the holidays getting to know F# a bit better. I think I now consider myself to be truly dangerous with it.&amp;#160; A couple of things which repeatedly bit me as I stumbled through learning F# as a n00b.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+01%2f13%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+01%2f13%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+01%2f13%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+01%2f13%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+01%2f13%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/13/f-discoveries-this-week-01-13-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20033" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/roundup/default.aspx">roundup</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/haskell/default.aspx">haskell</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/units+of+measure/default.aspx">units of measure</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/parallelism/default.aspx">parallelism</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/data+structures/default.aspx">data structures</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/monads/default.aspx">monads</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/IObservable/default.aspx">IObservable</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Design+Patterns/default.aspx">Design Patterns</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/WeakReference/default.aspx">WeakReference</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/formatting/default.aspx">formatting</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/DataGrid/default.aspx">DataGrid</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/reader/default.aspx">reader</category></item><item><title>F# and You! - New Hampshire User’s Group and Beyond</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx</link><pubDate>Mon, 26 Oct 2009 16:24:49 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19518</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19518.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19518</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19518</wfw:comment><description>&lt;p&gt;I’ve been working for a while on a new presentation which I was finally able to give last week at the &lt;a href="http://www.nhdn.com/DNN/"&gt;New Hampshire .NET User Group&lt;/a&gt;.&amp;#160; &lt;em&gt;F# and You!&lt;/em&gt; focuses on painting the big picture about F# instead of the off-putting details like having to learn new syntax.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.atalasoft.com/cs/blogs/rickm/functional_5555AB42.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="functional" border="0" alt="functional" src="http://www.atalasoft.com/cs/blogs/rickm/functional_thumb_6BAB5087.png" width="504" height="379" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For this new presentation I start by discussing the adoption of functional programming on other platforms by using Scala, Erlang and Haskell as examples.&amp;#160; I then continue on to how the algorithmic programmers are moving to functional languages while UI developers are moving towards declarative. &lt;/p&gt;  &lt;p&gt;This then naturally raises the question of why programmers would choose a specific style of programming for a specific task.&amp;#160; The answer, of course, is that when you work close to a domain you can build things more quickly and with a lower error rate.&lt;/p&gt;  &lt;p&gt;This then transitions easily into the specific beneficial properties of functional programming (and F#).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;General Overview:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The Separation of UI and Back End&lt;/li&gt;    &lt;li&gt;What is Functional Programming? (Functional Concepts)&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Pure functions&lt;/li&gt;      &lt;li&gt;Immutability&lt;/li&gt;      &lt;li&gt;Lambda Expressions&lt;/li&gt;      &lt;li&gt;Higher Order Functions&lt;/li&gt;      &lt;li&gt;Recursion&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;The Benefits of Functional Programming&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Code Compression&lt;/li&gt;      &lt;li&gt;Parallelism&lt;/li&gt;      &lt;li&gt;Robustness&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Proof is in the Pudding&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;TrueSkill&lt;/li&gt;      &lt;li&gt;Grange Insurance Rating Engine&lt;/li&gt;      &lt;li&gt;MSN adCenter&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Wrap-up&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’ve also found that it is useful to show the latest circulating version of the &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2008/04/25/10-hours-in-fsharp-exploring-concurrency-through-an-ant-colony-simulation.aspx"&gt;Ant Colony simulation I wrote over a year ago&lt;/a&gt;.&amp;#160; I found a version in &lt;a href="http://blogs.msdn.com/dsyme/archive/2009/10/10/f-tutorial-code-and-slides-jaoo-2009-edition.aspx"&gt;Don Syme’s JAOO Talk code samples&lt;/a&gt; but am not sure who has been keeping it up to date.&amp;#160; A big thanks to whoever that person is.&amp;#160; It provides some sweet eye candy to dull the bitterness of the technical Functional Concepts section.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Planned (and Past) “F# and You!” Locations:&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;11/10/2009 – &lt;a href="http://ctdotnet.org/default.aspx"&gt;CT .NET Developers Group&lt;/a&gt; (Farmington, CT)      &lt;br /&gt;10/28/2009 – &lt;a href="http://www.technologyusersgroup.org/"&gt;Technology Users Group&lt;/a&gt; (Charleston, SC)      &lt;br /&gt;10/21/2009 – &lt;a href="http://www.nhdn.com/DNN/"&gt;New Hampshire .NET User Group&lt;/a&gt; (Nashua, NH)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;See the new &lt;a href="http://fsug.org/OtherEvents/tabid/67/Default.aspx"&gt;Other Events&lt;/a&gt; section of our &lt;a href="http://fsug.org/Home/tabid/37/Default.aspx"&gt;F# User Group site&lt;/a&gt; for information on other upcoming F# talks.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Downloads:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.atalasoft.com/cs/files/folders/19516/download.aspx"&gt;Latest Slides&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.atalasoft.com/cs/files/folders/19517/download.aspx"&gt;VS2008 Code Samples&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;subject=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;title=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;title=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;title=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;title=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19518" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Code+Camp/default.aspx">Code Camp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/talks/default.aspx">talks</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/haskell/default.aspx">haskell</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fp/default.aspx">fp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/functional+programming/default.aspx">functional programming</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/parallelism/default.aspx">parallelism</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/erlang/default.aspx">erlang</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/robustness/default.aspx">robustness</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/code+compression/default.aspx">code compression</category></item><item><title>Discoveries This Week 08/02/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx</link><pubDate>Mon, 03 Aug 2009 03:57:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19031</guid><dc:creator>RickM</dc:creator><slash:comments>2</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19031.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19031</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19031</wfw:comment><description>&lt;p&gt;Tomorrow Matthew Podwysocki will be speaking at the New England F# User Group.&amp;#160; I also have some great links today with Don Syme at QCon08, why we need the rec keyword, regular expression parsing and graphing with GLEE.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Tomorrow @ &lt;a href="http://fsug.org/"&gt;FSUG&lt;/a&gt;: &lt;a href="http://weblogs.asp.net/Podwysocki/"&gt;Matthew Podwysocki&lt;/a&gt; on Parallelism in F#&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;With the increasing amount of data available to us, we need new ways of thinking around how to create scalable solutions in order to best exploit it.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’m a long time fan of Matt’s blog and am looking forward to see him speak.&amp;#160; We’ve gotten most of the bugs out of our video workflow and so I hope to have his talk up on the &lt;a href="http://fsug.org/"&gt;New England F# User Group site&lt;/a&gt; early this week.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.bestechvideos.com/2009/07/17/f-succinct-expressive-efficient-functional-programming-for-net"&gt;Don Syme at QCon08, F# – Succinct, Expressive, Efficient Functional Programming for .NET&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Don Syme presents F# basics, a typed functional language for .NET that combines the succinctness, expressivity, and compositionality of functional programming with the runtime support, libraries, interoperability, tools, and object model of .NET.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’m always happy to find another instance of Don Syme speaking.&amp;#160; In this talk he focuses on why functional programming is worth Microsoft’s investment in time.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://codecrafter.blogspot.com/2009/07/f-why-rec.html"&gt;Code Crafter, F#: Why the rec?&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;One of the first things that I noticed is that in order to declare a recursive function you have to be explicit about it in the function definition. You have to declare it with the&lt;strong&gt; &lt;/strong&gt;rec keyword. […] But I don't know why they didn't do this by default.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Interestingly enough, &lt;a href="http://stackoverflow.com/questions/900585/why-are-functions-in-ocaml-f-not-recursive-by-default"&gt;it turns out&lt;/a&gt; that the reason for the rec keyword is required is due to the way Hindley-Milner type inference algorithm handles mutually recursive functions.&amp;#160; Without the keyword the algorithm would be unable to generalize types appropriately.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevehorsfield.wordpress.com/2009/07/25/f-building-a-regular-expression-pattern-parser/"&gt;Steve Horsfield, F#: Building a Regular Expression Pattern Parser&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;One of the habits of a good functional programmer is to use tail-recursion.&amp;#160; This allows the compiler to convert recursion into iterative methods that can handle any length of input.&amp;#160; I have attempted to use this.&amp;#160; […] I have also structured the code into modules to demonstrate some of F#’s features in this regard.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Beautifully structured code for a first stab at F#.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevehorsfield.wordpress.com/2009/07/27/f-a-data-structure-for-modelling-directional-graphs/"&gt;Steve Horsfield, F#: A Data Structure For Modelling Directional Graphs&lt;/a&gt; and &lt;a href="http://stevehorsfield.wordpress.com/2009/07/30/f-graphing-with-glee/"&gt;F#: Graphing with GLEE &lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In my previous post, I described how to parse a regular expression pattern into an abstract syntax representation.&amp;#160; The next phase is to transform the parsed syntax into a finite state machine.&amp;#160; I have chosen to model the FSM as a mathematical directional graph (digraph).&amp;#160; This post describes the implementation of this module in preparation for the actual compilation step.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Another excellent couple of samples from Steve.&amp;#160; I had not seen &lt;a href="http://research.microsoft.com/apps/pubs/default.aspx?id=64284"&gt;GLEE&lt;/a&gt; in the past and have had a number of projects in which it would have been quite useful. &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx&amp;amp;;subject=Discoveries+This+Week+08%2f02%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx&amp;amp;;title=Discoveries+This+Week+08%2f02%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx&amp;amp;title=Discoveries+This+Week+08%2f02%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx&amp;amp;;title=Discoveries+This+Week+08%2f02%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx&amp;amp;;title=Discoveries+This+Week+08%2f02%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/02/discoveries-this-week-08-02-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19031" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/roundup/default.aspx">roundup</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/recursion/default.aspx">recursion</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/regular+expressions/default.aspx">regular expressions</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/graphs/default.aspx">graphs</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/parallelism/default.aspx">parallelism</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/GLEE/default.aspx">GLEE</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/data+structures/default.aspx">data structures</category></item></channel></rss>