<?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 : monads, HPC, F#, cufp</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/monads/HPC/F_2300_/cufp/default.aspx</link><description>Tags: monads, HPC, F#, cufp</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>F# Discoveries This Week 10/04/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/04/f-discoveries-this-week-10-04-2009.aspx</link><pubDate>Mon, 05 Oct 2009 01:57:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19389</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19389.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19389</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19389</wfw:comment><description>&lt;p&gt;I’m back from my three week vacation and am just about buried in fascinating functional programming links.&amp;#160; I’ve managed to get through most of them and have selected the best of these for this very special welcome back edition of Discoveries This Week.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.vimeo.com/album/128851"&gt;CUFP (Commercial Users of Functional Programming) 2009 Videos&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Functional languages have been under academic development for over 25 years, and remain fertile ground for programming language research. Recently, however, developers in industrial, governmental, and open-source projects have begun to use functional programming successfully in practical applications. In these settings, functional programming has often provided dramatic leverage, including whole new ways of thinking about the original problem.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://sharpmalib.codeplex.com/"&gt;M&amp;lt;’a&amp;gt; Lib (F# and C# LINQ) Monads Library&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Unified collection of Monads (M, unit, *) implemented in the Microsoft F# Language.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Implemented so far: Identity, Maybe, State and List with many more to come.&amp;#160; The project lead is actively looking for help.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://flyingfrogblog.blogspot.com/2009/09/f-vs-ocaml.html"&gt;Flying Frog’s F# vs OCaml: Image Processing&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Fortunately, this inefficiency can be overcome by using Just-In-Time (JIT) compilation instead of static compilation and partially specializing polymorphism away before JIT compilation. This is the intended design for polymorphism in HLVM and the inspiration was drawn from Microsoft's excellent implementation of the CLR.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Consequently, the equivalent F# program is 100× faster than the OCaml.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This JIT optimization speed enhancement is astounding by any measure. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://resourcekit.windowshpc.net/MORE_INFO/FSharpHPC.html"&gt;HPC Development Using F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“This white paper introduces the F# programming language in the context of technical computing, and demonstrates how F# can be used for both shared-memory parallel programming using the Task Parallel Library, and distributed parallel programming using a Windows HPC Server 2008-based cluster and the Message Passing Interface (MPI).”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Matthew Podwysocki’s Generically Constraining F# Pars &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2009/09/14/constraining-f.aspx"&gt;One&lt;/a&gt;, &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2009/09/27/generically-constraining-f-part-ii.aspx"&gt;Two&lt;/a&gt; and &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2009/10/02/generically-constraining-f-part-iii.aspx"&gt;Three&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Generic constraints inside .NET has always been a fun enterprise, especially given how C# handles them&amp;#160; There has been &lt;/em&gt;&lt;a href="http://msmvps.com/blogs/jon_skeet/archive/2009/09/10/generic-constraints-for-enums-and-delegates.aspx"&gt;&lt;em&gt;some discussion on Jon Skeet’s blog&lt;/em&gt;&lt;/a&gt;&lt;em&gt; about the fact that C# does not allow for generic constraints referring to a number of types. […] However, as Jon correctly points out, this is indeed supported by the CLR directly.&amp;#160; In fact, with our knowledge of &lt;/em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd233203%28VS.100%29.aspx"&gt;&lt;em&gt;F# constraints&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, we can write this exact function in F# without any such issue.”&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/2009/10/04/f-discoveries-this-week-10-04-2009.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+10%2f04%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/04/f-discoveries-this-week-10-04-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/10/04/f-discoveries-this-week-10-04-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+10%2f04%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/04/f-discoveries-this-week-10-04-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/10/04/f-discoveries-this-week-10-04-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/04/f-discoveries-this-week-10-04-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/10/04/f-discoveries-this-week-10-04-2009.aspx&amp;amp;title=F%23+Discoveries+This+Week+10%2f04%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/04/f-discoveries-this-week-10-04-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/10/04/f-discoveries-this-week-10-04-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+10%2f04%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/04/f-discoveries-this-week-10-04-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/10/04/f-discoveries-this-week-10-04-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+10%2f04%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/04/f-discoveries-this-week-10-04-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19389" 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/C_2300_/default.aspx">C#</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/image+processing/default.aspx">image processing</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/HPC/default.aspx">HPC</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/generics/default.aspx">generics</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/cufp/default.aspx">cufp</category></item></channel></rss>