<?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 : wpf</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx</link><description>Tags: wpf</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>F# Discoveries This Week 10/11/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/10/11/f-discoveries-this-week-10-11-2010.aspx</link><pubDate>Mon, 11 Oct 2010 19:45:16 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:21056</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/21056.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=21056</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=21056</wfw:comment><description>&lt;p&gt;As always, a ton of great posts this week on a large number of interesting topics.&amp;#160; It’s great to be part of such a productive community.&amp;#160; I particularly enjoyed Vladimir’s Zebra Puzzle post.&amp;#160; The code is just beautiful.&lt;/p&gt;  &lt;p&gt;I also have some bittersweet news to share.&amp;#160; I’ll soon be leaving Atalasoft to join a yet unnamed company in the NYC area.&amp;#160; I’ll miss Atalasoft for sure, it’s a great company full of very smart people.&amp;#160; Keep an eye on the &lt;a href="http://www.atalasoft.com/company/careers"&gt;career page&lt;/a&gt; and you might just be lucky enough to work with these fine folks.&lt;/p&gt;  &lt;p&gt;I’m planning on starting a NYC F# user group once I get settled.&amp;#160; Please let me know if you’re interested in helping to get it off of the ground.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;News&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://www.communityforfsharp.net/october-2010-live-meeting"&gt;October Community for F# meeting - Trees, Language Oriented Programming and F# with Robert Pickering&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;When: Tuesday, Oct 19, 2010 11:00 AM (PDT)&lt;/p&gt;    &lt;p&gt;&lt;em&gt;“In this presentation Robert Pickering will take a look at the concept of the tree data structure, and we’ll see how trees are everywhere we look in programing”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://www.intellifactory.com/blogs/adam.granicz/2010/10/6/F!sharp!-MVP-Award---2010.article"&gt;Adam Granicz's F# MVP Award - 2010&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Sorry I missed you last week Adam!&amp;#160; Congrats on the award!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://functional-orbitz.blogspot.com/2010/10/summary-of-cufp-2010.html"&gt;Summary of CUFP 2010&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“The star of the show was definitely F# in my opinion. The weakest part of the conference was the lack of outlets.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://www.mono-project.com/Release_Notes_Mono_2.8"&gt;Mono 2.8 Released&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Mono 2.8 is a portable and open source implementation of the .NET framework for Unix, Windows, MacOS and other operating systems.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Audio and Video&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://vimeo.com/15563573"&gt;Anton Tayanovskyy - Developing WebSharper 2.0 Applications&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;“In this talk Anton will present a pre-release version of WebSharper 2.0 by developing and testing a small standalone JavaScript component.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Tools / Projects&lt;/h1&gt;  &lt;h3&gt;   &lt;blockquote&gt;     &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;   &lt;/blockquote&gt; &lt;/h3&gt;  &lt;h3 align="left"&gt;&lt;a href="http://huwmancode.codeplex.com/releases/view/53555"&gt;huwmancode - Release: Release 0.2 Alpha&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;“Features seamless debug support enabled for VS 2010 - Place a breakpoint in your service code and run! (Make sure to install the service first!)”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://gist.github.com/617077"&gt;RouteTester&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“ A sitemap-based url tester that runs in parallel (F#).”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://github.com/fholm/IronJS/tree/0.1.90-preview"&gt;IronJS at 0.1.90-preview&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“IronJS - A Javascript implementation for the DLR written in F#”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://goreader.codeplex.com/"&gt;F# Sample: Google Reader API Port&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“This F# Google Reader API code is a port from a project that was originally developed in C#. It supports the 'unofficial' reader API and can get lists of subscriptions, posts, tags etc. for a Google Reader account.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://github.com/panesofglass/FSharp.Reactive"&gt;FSharp.Reactive &lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Extensions and wrappers for using the Reactive Extensions (Rx) with F#.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;General&lt;/h1&gt;  &lt;h3&gt;   &lt;blockquote&gt;     &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;   &lt;/blockquote&gt; &lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.intellifactory.com/blogs/vladimir.matveev/2010/10/5/Solving-Zebra-Puzzle.article"&gt;Vladimir Matveev's Solving Zebra Puzzle&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Zebra puzzle (often referred as Einstein's problem) is a well-known class of logic puzzles where you need to reconstruct the missing parts from the set of known facts”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://www.intellifactory.com/blogs/diego.echeverri/2010/10/7/Starting-with-WebSharper-Interface-Generator.article"&gt;Diego Echeverris Starting with WebSharper Interface Generator&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Sometimes though, the library you want to create wraps for contains hundreds of classes, configuration objects and enumerations. Doing this manually is not only error-prone but extremely boring.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;   &lt;blockquote&gt;     &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;   &lt;/blockquote&gt;   &lt;a href="http://stevegilham.blogspot.com/2010/10/computing-per-service-sids-without.html"&gt;Steve Gilham's Computing per-service SIDs without sc.exe&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Here's a quick script to do it, that can be the basis for including the computation programmatically into e.g. installer generation.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/b/ashleyf/archive/2010/10/06/8-queens-in-8-lines.aspx"&gt;Ashley Feniello's 8-Queens in 8 Lines&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Brushing up on “whiteboard coding” for internal interviews… Inspired by Hal Ableson’s streams-based solution to this old classic in the SICP lectures, here’s a pretty concise n-Queens solution:”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://lorgonblog.wordpress.com/2010/10/08/unit-tests-debugger-code-understanding/"&gt;Brian McNamara’s Unit tests + debugger = code understanding&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“When you have good unit tests, everything is better; if you’re already a TDD-er, then&amp;#160; saying that is just preaching to the choir.&amp;#160; And when you have a good debugger, using that tool is a great way to learn about an unfamiliar code base (stepping through code, setting breakpoints, looking at stacks, changing values of locals or the next statement to see how things react).&amp;#160; Put those two together, and the effect is even more powerful.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;a href="http://www.trelford.com/blog/post/GameOfLife.aspx"&gt;Phillip Trelford's Game of Life&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Michael used a video of Jon Conway himself to explain the rules; which he followed up by showing a very interesting implementation using APL. Afterwards we all paired up to try implementations in various languages. After about half an hour my pair came up with the following F# implementation.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;   &lt;blockquote&gt;     &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;   &lt;/blockquote&gt;   &lt;a href="http://www.deanchalk.me.uk/post/F-Interacting-With-WPF-Dispatcher-Via-F-Interactive-Window.aspx"&gt;Dean Chalk's Interacting With WPF Dispatcher Via F# Interactive Window&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“So what this means now is that we can create sophosticated WPF controls, invoke them in the FSI window, and then apply long-running upddates via FSI without the WPF window freezing on us.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Teaching and Basics&lt;/h1&gt;  &lt;h3&gt;   &lt;blockquote&gt;     &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;   &lt;/blockquote&gt; &lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://2sharp4u.wordpress.com/2010/10/08/embedded-webbrowser/"&gt;Embedded WebBrowser in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Luckily, Winforms provides an embedded web browser through System.Windows.Forms.WebBrowser. The Mono implementation relies on the Mozilla Gecko engine.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;h1&gt;&lt;em&gt;&amp;#160;&lt;/em&gt;&lt;/h1&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/10/11/f-discoveries-this-week-10-11-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+10%2f11%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/10/11/f-discoveries-this-week-10-11-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/10/11/f-discoveries-this-week-10-11-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+10%2f11%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/10/11/f-discoveries-this-week-10-11-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/10/11/f-discoveries-this-week-10-11-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/10/11/f-discoveries-this-week-10-11-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/10/11/f-discoveries-this-week-10-11-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+10%2f11%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/10/11/f-discoveries-this-week-10-11-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/10/11/f-discoveries-this-week-10-11-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+10%2f11%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/10/11/f-discoveries-this-week-10-11-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/10/11/f-discoveries-this-week-10-11-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+10%2f11%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/10/11/f-discoveries-this-week-10-11-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=21056" 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/javascript/default.aspx">javascript</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/web/default.aspx">web</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/cufp/default.aspx">cufp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/WebSharper/default.aspx">WebSharper</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/mono/default.aspx">mono</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/puzzles/default.aspx">puzzles</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/MVP/default.aspx">MVP</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/SIDs/default.aspx">SIDs</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/game+of+life/default.aspx">game of life</category></item><item><title>F# Discoveries This Week 08/08/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-08-2010.aspx</link><pubDate>Sun, 08 Aug 2010 18:57:45 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20961</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20961.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20961</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20961</wfw:comment><description>&lt;p&gt;So many links, all well worth your time.&amp;#160; I know one thing I won’t be missing is Don Syme’s online talk at C4FSharp on 8/17.&amp;#160; It’s great to be part of a language community in which the founder interacts in such a direct way.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;News&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/fsharp-component-design-guidelines.pdf"&gt;Draft F# Component Design Guidelines now Available (pdf)&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.communityforfsharp.net/august-2010-live-meeting"&gt;Don Syme will be speaking online for the Community for F# on 8/17&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.nyalt.net/calendar/14226459/?eventId=14226459"&gt;I’ll be speaking at the NYC ALT.NET User Group on 8/25&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.slideshare.net/wkhazzard/what-the-math-geeks-dont-want-you-to-know-about-fsharp-4917609"&gt;Kevin Hazzard’s Slides from DevConnections are up&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://cufp.org/conference/sessions/2010/eden-fwpf-framework-building-gui-tools"&gt;Howard Mansell will present Eden: (An F#/WPF framework for building GUI tools) at CUFP&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://langref.org/fsharp+clojure+scala+haskell"&gt;F# is now at 93% on langref, only 1% behind scala. (Great Going!)&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.pexforfun.com/"&gt;PexForFun.com now has puzzles for F#&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsxplat.codeplex.com/releases/view/49967"&gt;FSharp Cross Platform Packages and Samples 1.1 Released&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Audio/Video&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://skillsmatter.com/podcast/agile-testing/jon-harrop-qr-decomposition"&gt;Jon Harrop at the London F-Sharp User Group: QR Decomposition&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This lecture takes the audience from a tiny numerically-robust implementation of a common linear algebra algorithm through several stages of optimization, culminating in a high-performance solution that easily outperforms Intel’s Math Kernel Library. The algorithm studied is QR decomposition, which is commonly used for linear least squares best fit.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;F# Articles&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://www.intellifactory.com/blogs/adam.granicz/2010/8/5/Expert-F!sharp!-2.0---what%27s-new"&gt;Adam Granicz’s Expert F# 2.0 – what’s new?&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;There comes a time when you just have to stop working for a minute and take a few moments to enjoy the fruits of your hard labor. For me, one of these moments lately came when I received the author copies of our book, Expert F# 2.0&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/08/f-templates-now-on-visual-studio.html"&gt;Daniel Mohl’s F# Templates Now On Visual Studio Gallery&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As Don Syme mentioned in a recent blog post, I've been working to get the five F# templates that have been announced on this blog up on Visual Studio Gallery.&amp;#160; I'm happy to say that all are now available.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggingabout.net/blogs/vagif/archive/2010/08/04/mock-framework-challenges-in-f.aspx"&gt;Vagif Abilov’s Mock framework challenges in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;So far I only tried very basic mocking described in the first post of Richard’s series: faking return value. As I expected, even such a simple operation became a challenge when executed from F# code. I managed to make tests work only for two and half frameworks.&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/08/figment-web-dsl-for-f.html"&gt;Mauricio Scheffer’s Figment: a web DSL for F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As I said, this is very much work in progress, and there's still a lot to do. I intend to make it fully open source when I finish writing my thesis.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/08/segment-tree-in-f.html"&gt;Neil Carrier’s Segment Tree in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Suffice to say that a segment tree stores a group of intervals on an ordered set, in such a way that all the intervals containing a given value can be efficiently located. Such a query is sometimes called a “stabbing query,” because it’s like sticking a spear through the data and seeing which entries get stabbed.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/07/lazy-f-sequence-evaluation-gotchas.html"&gt;Neil Carrier’s F# Sequence Lazy Evaluation Gotchas&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Today’s post will be old news to experienced F# programmers. Actually, it’s old news to me, relative newcomer that I am. However, it’s one of those things I tend to forget until it jumps up to bite me, as it did today.&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/esanchez/archive/2010/08/06/f-the-acm-and-the-sec.aspx"&gt;Edgar Sanchez’s F#, the ACM, and the SEC&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;And it is this last recommendation on DSLs that carries interesting news for F# because at the end of page 6 it states “Experience seems to show that higher-order programming languages such as F# provide a particularly good basis for domain-specific languages.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://flyingfrogblog.blogspot.com/2010/08/pure-f-now-only-2-slower-than-ocaml.html"&gt;Jon Harrop’s Pure F# now only 2× slower than OCaml&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This is a surprising and encouraging result not only because it makes F# competitive for an even wider variety of tasks but because it also implies that Microsoft are taking F# so seriously that they are optimizing the .NET garbage collector for it!&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.atalasoft.com/cs/blogs/stevehawley/archive/2010/08/03/protect-yourself.aspx"&gt;Steve Hawley’s Protect Yourself&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;One solution is to label things that need to be protected, disassemble the output, run a regular expression to search/replace the accessibility and reassemble. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://cashforlifetv.com/blog/index.php/2010/08/03/f-and-net-needed-at-credit-suisse-is-there-a-future-for-this-and-microsoft-in-the-quant-world/"&gt;F# and .NET needed at Credit Suisse? Is there a future for this and Microsoft in the quant world?&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As I said, when you compare to these other languages in the world of quant, F# appears to be taking an early lead.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stefanoricciardi.com/2010/08/05/project-euler-problem-4-in-f/"&gt;Stefano Ricciardi’s Project Euler Problem 4 in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The actual algorithm uses brute force to test for palindromicity (neologism?) all the numbers that can be composed multiplying together 3 digits numbers (those from 100 to 999), picking the highest one.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Miscellaneous&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://lambda-the-ultimate.org/node/4024"&gt;Lambda the Ultimate’s OSCON 2010 Emerging Languages Camp Roundup&lt;/a&gt;&lt;/h3&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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+08%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+08%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f08%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-08-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20961" 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/ecm/default.aspx">ecm</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/lazy+evaluation/default.aspx">lazy evaluation</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/don+syme/default.aspx">don syme</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</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/WebSharper/default.aspx">WebSharper</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Mock/default.aspx">Mock</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/qr+decomposition/default.aspx">qr decomposition</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/pex/default.aspx">pex</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/puzzles/default.aspx">puzzles</category></item><item><title>F# Discoveries this Week 07/09/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/07/09/f-discoveries-this-week-07-09-2010.aspx</link><pubDate>Fri, 09 Jul 2010 17:42:10 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20886</guid><dc:creator>RickM</dc:creator><slash:comments>2</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20886.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20886</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20886</wfw:comment><description>&lt;p&gt;This week we once again reap another huge crop of fantastic F# content.&amp;#160; In fact, it’s been getting so overwhelming that I’ll be moving to an every week format from here on out.&amp;#160; Please come in, read, and enjoy!&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;News&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000006794"&gt;A New F# Case Study on Microsoft.com&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;With its new tools, the bank can speed development by 50 percent or more, improve quality, and reduce costs.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.meetup.com/FSharpLondon/"&gt;Next F# London Meetup Announced: July 28th&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The next meetup of the F#unctional London Meetup Group will be held on July 28, with Zach Bray talking on Agile Acceptance Testing with 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://www.itwriting.com/blog/articles/don-syme-on-f-microsofts-functional-programming-language-for-net"&gt;Tim Anderson (of The Register) Interviews Don Syme&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I met Syme at the QCon conference in London, in March 2010, and interviewed him shortly afterwards. Some quotes from that interviewed have already been published in an article for The Register, but I am now posting nearly all of it here.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://dotnetkicks.com/fsharp"&gt;DotNetKicks Now has a F# Section&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Thanks to everyone on twitter who voted!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://sourceforge.net/projects/quantifa/"&gt;Quantifa 0.0.2 Released&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Quantifa is an F# open-source library for quantitative finance and risk management. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://laurent.le-brun.eu/site/index.php/2010/06/25/58-new-fsharp-mode-for-emacs"&gt;F#-mode for Emacs updated to 0.3&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The F# mode for Emacs is two years old, and has been downloaded more than 1,000 times.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="https://blogs.msdn.com/b/dsyme/archive/2010/07/08/tabbles-organize-your-files-written-in-f.aspx"&gt;Tables: Organize Your Files. Written in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Tabbles is a new way of organizing files: it combines virtual folders and tags, and auto-organizes and tags your files in very intelligent ways. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Audio / Video&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://channel9.msdn.com/posts/MSDNSweden/Svea-Ekonomi-uses-F-for-automated-billing-system-for-the-Telecom-industry/"&gt;Svea Ekonomi on F# for automated billing system for the Telecom industry&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In earlier versions of the billing system, much of the business logic resided in SQL Server and various Perl and Java programs. That made the solution hard to maintain and tailor to the needs of the customers. By using F# instead of an object oriented language the developers at Svea Ekonomi can be a lot more productive.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Articles&lt;/h1&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.voyce.com/index.php/2010/06/30/minilight-renderer-in-fsharp/"&gt;Ian Voyce’s Minilight renderer in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I’m a sucker for eye-candy, and the other day I came across the beautifully lit renders produced by &lt;/em&gt;&lt;em&gt;Minilight&lt;/em&gt;&lt;em&gt;. It’s a nice, minimal implementation of a global illumination renderer that’s been ported to a wide variety of different languages from C to ActionScript. So of course, I couldn’t resist trying to implement it 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://fsharpnews.blogspot.com/2010/07/f-vs-mathematica-fast-pricer-for.html"&gt;Jon Harrop’s F# vs Mathematica: fast pricer for American options&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;Another example from Sal Mangano's Mathematica Cookbook, this time taken from Andreas Lauschke's example, is a &amp;quot;fast&amp;quot; pricer for American options. The relevant section of the book stresses the importance of performance in this context and the Mathematica code presented was heavily optimized by experts.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharpnews.blogspot.com/2010/07/f-vs-mathematica-parametric-plots.html"&gt;Jon Harrop’s F# vs Mathematica: parametric plots&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Another example from Sal Mangano's Mathematica Cookbook (p.520) is an elegant little Mathematica program that uses a crude numerical integrator to plot the trajectory of a differential equation representing the populations of predators (foxes) and prey (rabbits):&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharpnews.blogspot.com/2010/07/f-vs-mathematica-red-black-trees.html"&gt;Jon Harrop’s F# vs Mathematica: red-black trees&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The simpler F# solution is also 20× faster at inserting 100k elements and 100× faster at computing the range of depths in the resulting tree.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharpnews.blogspot.com/2010/07/lorenz-attractor.html"&gt;Jon Harrop’s Lorenz Attractor&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The Lorenz attractor is a fractal derived from the trajectory of a 3-dimensional dynamical system that exhibits chaotic flow. This blog post describes a 35-line program that computes trajectories of this attractor and visualizes them as a beautiful whisp using Windows Presentation Foundation.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/06/composable-order-relations.html"&gt;Neil Carrier’s Composable Order Relations&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Even before I started experimenting, I realized that checking a list for sorting was just a specific example of checking whether the pairs in a list satisfied a certain binary order relation. So I decided to work directly on a more general solution.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/07/continuation-passing-mnemonics.html"&gt;Neil Carrier’s Continuation-Passing Mnemonics&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Learning to construct continuations can be tough. It’s easy to state how they work: they facilitate tail recursion by recursively passing the remainder of a computation. But it can be a lot harder to actually get one working from scratch.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/07/dijkstras-shunting-yard-algorithm.html"&gt;Neil Carrier’s Dijkstra’s Shunting-Yard Algorithm&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Without further ado, here is my first F# implementation of Dijkstra’s shunting-yard algorithm, including a basic test (based on the example at Wikipedia). This is probably not a minimal or most-efficient implementation, but it is a starting place.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/07/arity-and-unit-arguments-in-f-20.html"&gt;Neil Carrier’s Arity and Unit Arguments in F# 2.0&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;While working on an internal domain-specific language, I encountered a case where passing a unit into a function made the syntax somewhat more readable. The completely artificial example below illustrates the concept as the function xfer1. I also tried a two-unit version, which is illustrated as xfer2.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/07/presentation-5-best-practices-for-f.html"&gt;Daniel Mohl’s Presentation: 5 Best Practices for F# Development slides and examples&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;Thanks to all who come out to the New England F# User Group meeting tonight!&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://tomasp.net/blog/dynamic-sql.aspx"&gt;Tomas Petricek’s Dynamic in F#: Reading data from SQL database&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;If you ever tried to call a SQL stored procedure directly using the SqlCommand, then you can surely appreciate the elegance of this code snippet. Let's now take a look at a larger example and some of the neat tricks that make this possible...&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Erik Schulz’s &lt;a href="http://gradbot.blogspot.com/2010/06/cartesian-tree-sort-revisited.html"&gt;Cartesian Tree Sort – Revisited&lt;/a&gt;, &lt;a href="http://gradbot.blogspot.com/2010/06/cartesian-tree-sort-skew-heap.html"&gt;Cartesian Tree Sort – Skew Heap&lt;/a&gt; and &lt;a href="http://gradbot.blogspot.com/2010/07/beating-quick-sort-cartesian-tree-merge.html"&gt;Beating Quick Sort - Cartesian Tree Merge&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;After looking at skew heap, merge sort and Cartesian tree, I figured there has to be a way to combine all three.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin’s &lt;a href="http://lepensemoi.free.fr/index.php/2010/06/25/seo-analysis-in-f"&gt;SEO Analysis in F#,&lt;/a&gt; and &lt;a href="http://lepensemoi.free.fr/index.php/2010/06/27/seo-analysis-in-f-a-friendly-application"&gt;SEO Analysis in F#, a friendly application&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last time, we created a library of Search Engine Optimization (SEO) helpers. This time we’ll see how to use them to actually fetch information about your webiste rankings (and your competitors’).&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lepensemoi.free.fr/index.php/2010/07/07/european-central-bank-extracting-reference-rates-with-f"&gt;Julien Ortin’s European Central Bank – extracting reference rates with F#&lt;/a&gt; &lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Every day, the European Central Bank publishes “official” reference FX (foreign exchange) rates where currencies are quoted against the Euro (expressed as EUR/XXX), or 1 EUR = xxx XXX. The exchange rates of the last thirty sessions are available in xml format which we shall try to parse.&amp;#160; In order to do so, we use F# and active patterns, based on Don Syme’s draft paper.&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.intellifactory.com/blogs/anton.tayanovskyy/2010/6/29/Optimizing-JavaScript-with-F!sharp!.article"&gt;Anton Tayanovskyy’s Optimizing JavaScript with F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The need for optimizing JavaScript is very peculiar. This is not about delivering top wall-clock performance, but rather delivering the most compact (in Release mode) and most readable (in Debug mode) source. In the case of WebSharper™, it is also about relieving the compiler and the macro writer from the burden of emitting optimal code.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.roundthecampfire.net/2010/06/my-first-f-post.html"&gt;Chris Ballard’s My First F# Post&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;That said, this post will take you through my solution for Euler 54, which (somewhat unusually) isn't a particularly mathematical problem, but turns out to be a great way to demonstrate some of the features of the F# language. The basic principle of this problem is to compare two hands of cards in the game of poker, and to determine which is the winning hand.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.roundthecampfire.net/2010/06/prime-numbers-building-eulermaths.html"&gt;Chris Ballard’s Prime Numbers - Building the EulerMaths library in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Those of you who are doing Project Euler know what I am talking about by the EulerMaths library. There are certain fundamentals which crop up again and again in the questions and it is important to work these into a reusable and performant library.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/06/wpf-mvvm-multi-project-template.html"&gt;Daniel Mohl’s WPF MVVM Multi-Project Template: A Polyglot Approach&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As an advocate for using the right tool for the job, I have created a new WPF MVVM multi-project template composed of an C# View project, an F# ViewModel project, and an F# Model project.&amp;#160; &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.codeproject.com/KB/net-languages/FSharp_Eliza_Bot.aspx"&gt;Rodolfo Ortega’s Eliza like chat bot in F# language for fun&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This is a very simple Eliza like chat bot. I call it Meliza Sharp. I wrote it for having fun learning the F# language shipped with Visual Studio 2010. &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/07/abusing-printfformat-in-f.html"&gt;Mauricio Scheffer’s Abusing PrintfFormat in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Pretty cool, huh? This trick can be used for other things, since PrintfFormatProc is fully reusable. For example, I'm currently using PrintfFormat manipulation to define type-safe routing in a web application&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://geekswithblogs.net/MarkPearl/archive/2010/07/06/f-ndash-depressingly-simple-text-file-access.aspx"&gt;Mark Pearl’s Depressingly simple text file access&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Today I was doing some work work and kept having to parse a log file. After a few hours of doing the same routine stuff I thought I might try and automate it using F#.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Mathias’s &lt;a href="http://clear-lines.com/blog/post/On-the-road-from-C-to-F-reading-Stock-Quotes.aspx"&gt;On the road from C# to F#: reading stock quotes&lt;/a&gt; and &lt;a href="http://clear-lines.com/blog/post/From-C-Sharp-to-F-Sharp-reading-historical-stock-quotes.aspx"&gt;more stocks&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Mads Kristensen has a nice post where he shows how to read&amp;#160; stock quotes from Yahoo finance using C#, which was very helpful to get started. I figured it would be interesting to try out a conversion to F# and see what the result looked like.&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/07/09/f-discoveries-this-week-07-09-2010.aspx&amp;amp;;subject=F%23+Discoveries+this+Week+07%2f09%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/07/09/f-discoveries-this-week-07-09-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/07/09/f-discoveries-this-week-07-09-2010.aspx&amp;amp;;title=F%23+Discoveries+this+Week+07%2f09%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/07/09/f-discoveries-this-week-07-09-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/07/09/f-discoveries-this-week-07-09-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/07/09/f-discoveries-this-week-07-09-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/07/09/f-discoveries-this-week-07-09-2010.aspx&amp;amp;title=F%23+Discoveries+this+Week+07%2f09%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/07/09/f-discoveries-this-week-07-09-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/07/09/f-discoveries-this-week-07-09-2010.aspx&amp;amp;;title=F%23+Discoveries+this+Week+07%2f09%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/07/09/f-discoveries-this-week-07-09-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/07/09/f-discoveries-this-week-07-09-2010.aspx&amp;amp;;title=F%23+Discoveries+this+Week+07%2f09%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/07/09/f-discoveries-this-week-07-09-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20886" 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/don+syme/default.aspx">don syme</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/WebSharper/default.aspx">WebSharper</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Sorting/default.aspx">Sorting</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/sql/default.aspx">sql</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/dotnetkicks/default.aspx">dotnetkicks</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/case+study/default.aspx">case study</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/unit/default.aspx">unit</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/arity/default.aspx">arity</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/renderer/default.aspx">renderer</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/emacs/default.aspx">emacs</category></item><item><title>F# Discoveries This Week 05/28/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-2010.aspx</link><pubDate>Fri, 28 May 2010 17:24:01 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20735</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20735.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20735</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20735</wfw:comment><description>&lt;p&gt;Come in and see what’s new in the F# world.&amp;#160; Every week is seems there is ever more content on an increasingly wider variety of topics.&amp;#160; The community is growing at a very fast pace.&amp;#160; Because of this, I’ve decided to change things up a bit with a new format.&amp;#160; I hope you’ll find it enhances your experience in exploring this mountain of fresh F# information.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2 align="center"&gt;News&lt;/h2&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/b/mulambda/archive/2010/05/15/f-on-silverlight-4.aspx"&gt;Silverlight 4 runtime has been released with F# support&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/b/mulambda/archive/2010/05/21/f-powerpack-may-2010-now-for-silverlight.aspx"&gt;The F# PowerPack 2.0.0.0 is out and supports Silverlight 3 and 4&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.intellifactory.com/blogs/adam.granicz/2010/5/22/WebSharper-2010-Standard-is-available.article"&gt;WebSharper 2010 1.0 is out and is free for commercial use&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://fsprojectextender.codeplex.com/"&gt;F# Project Extender 0.9.2.1 has been released&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;The &lt;a href="http://www.intellifactory.com/blogs/adam.granicz/2010/3/5/Call-for-Presentations---CUFP-2010.article"&gt;CUFP 2010&lt;/a&gt; and &lt;a href="http://www.intellifactory.com/blogs/adam.granicz/2010/3/5/Call-for-Presentations---ML-2010.article"&gt;ML 2010&lt;/a&gt; Call for Presentations is active&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.informationweek.com/news/global-cio/trends/showArticle.jhtml?articleID=219700406&amp;amp;pgno=4#GrangeInsurance"&gt;F# is on InformationWeek 500: 20 Great Ideas To Steal&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2 align="center"&gt;Video / Audio&lt;/h2&gt;  &lt;h3&gt;&lt;a href="http://www.infoq.com/interviews/don-syme-fsharp-2_0"&gt;Don Syme Talks with Sadek Drobi About F# 2.0, a First Class Citizen in Visual Studio 2010&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;Don Syme speaks about F# 2.0, its application fields, its integration in Visual Studio 2010 and F# open source Power Pack library. Don also discusses the genesis of F#, the ties with OCaml as well as its specificity. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.infoq.com/interviews/F-Sharp-Don-Syme"&gt;Don Syme Answering Questions on F#, C#, Haskell and Scala&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;In this interview made by InfoQ’s Sadek Drobi, Don Syme, a Senior Researcher at Microsoft Research, answers questions mostly on F#, but also on functional programming, C# generics, type classes in Haskell, similarities between F# and Scala.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.infoq.com/presentations/The-State-of-the-Art-on-.NET"&gt;Amanda Laucher and Josh Graham – The state of the Art on .NET&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Amanda Laucher and Josh Graham present at an introductory level some of the most important elements of the .NET ecosystem: F#, M, Boo, NUnit, RhinoMocks, Moq, NHibernate, Castle, Windsor, NVelocity, Guerilla WCF, Azure, MEF. &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.dotnetrocks.com/default.aspx?showNum=560"&gt;.NET Rocks F# Panel Live from NERD Center, Cambridge, MA&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;While on the Road Trip, Carl and Richard recorded this panel discussion with Talbott Crowell, Rick Minerich and Richard Hale Shaw on F# at the Microsoft New England Research and Development Center. The panel makes a very compelling case for adding a functional language to your toolchest. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h2 align="center"&gt;Blogs&lt;/h2&gt;  &lt;h3&gt;&lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!2110.entry"&gt;Brian McNamara’s Proggit Subreddit Graph in F# and DGML&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Dear Proggit: graphs are cool, but I prefer F#, so I graphed the subreddit interconnections with F# and DGML&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://thecodedecanter.wordpress.com/2010/05/24/implementing-map-reduce-in-f-sharp/"&gt;James’ Implementing map-reduce in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Again, F# proves to be a remarkably succinct language to express problems, in this case the built in syntactic sugar for tuples is a godsend!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/05/f-and-standard-aspnet-mvc-2-web.html"&gt;Daniel Mohl’s F# ASP.NET MVC 2 Web Application Template&lt;/a&gt; and     &lt;br /&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/05/creating-f-solution-template-for-visual.html"&gt;Creating an F# Template for Visual Studio 2010&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Tomas Petricek recently provided a great blog post on creating MVC web applications in F#.&amp;#160; I thought it might be nice to also have a template that replicates the functionality of the standard C# ASP.NET MVC 2 Web Application template.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/05/simple-inversion-of-control-ioc.html"&gt;Daniel Mohl’s A Simple Inversion of Control (IoC) Container in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In this post I will show how to build a simple Inversion of Control (IoC) container 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://bloggemdano.blogspot.com/2010/05/getting-started-with-websharper.html"&gt;Daniel Mohl’s Getting Started with WebSharper Platform 2010&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;A little while ago a cool new product was brought to my attention that allows client-based web development in F#.&amp;#160; The name of this product is WebSharper Platform 2010.&amp;#160; In this post, I will show a simple example for getting started with WebSharper Platform 2010.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/05/computation-expressions-with-net-data.html"&gt;Neil Carrier’s Computation Expressions with .NET Data Types&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I’m still working on my proof-of-concept and it’s going well. One thing that’s been on my mind is the desire to use computation expressions in it somewhere. So I’ve been trying to make sure I understood computation expressions well enough to use them to good purpose.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/05/wow-its-been-while.html"&gt;Neil Carrier’s Active Pattern Activity&lt;/a&gt; and &lt;a href="http://techneilogy.blogspot.com/2010/05/more-active-pattern-activity.html"&gt;More Active Pattern Activity&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I have to say the F# proof of concept is still going a lot better than I had ever hoped. Not only is it easy to port the basic algorithms from C# where applicable, but the kind of straightforward design that “functional-thinking” encourages is making for a better program with much less source code.&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.trelford.com/blog/post/Exposing-F-Dynamic-Lookup-to-C-WPF-Silverlight.aspx"&gt;Phillip Trelford’s Exposing F# Dynamic Lookup to C#, WPF and Silverlight&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Sometimes dynamic typing can be a pragmatic way of solving a specific problem. For example say you’re a solutions provider with a core product and have a number of clients with bespoke requirements. One client asks for a product rating feature. This can be relatively easily achieved using dynamic properties:&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.trelford.com/blog/post/F-operator-overloads-for-WPF-dependency-properties.aspx"&gt;Phillip Trelford’s F# operator overloads for WPF dependency properties&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Creating WPF elements directly from F# can produce good self-contained code, but at time is a little less readable than the XAML equivalent. Lets consider placing a button bound to a command on a grid at a certain position.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.simple-talk.com/community/blogs/clivet/archive/2010/05/20/91425.aspx"&gt;Clive Tong’s Towards an F# .NET Reflector add-in&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;When I had the opportunity to spent some time during Red Gate's recent &amp;quot;down tools&amp;quot; week on a project of my choice, the obvious project was an F# add-in for Reflector.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.simple-talk.com/community/blogs/clivet/archive/2010/05/20/91426.aspx"&gt;Clive Tong’s F# and the rose-tinted reflection&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;We're already seeing increasing use of many cores on client desktops. It is a change that has been long predicted.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lepensemoi.free.fr/index.php/2010/05/15/technical-analysis-indicators-in-f-metadata-reflection"&gt;Julien Ortin’s Technical analysis indicators in F# – Metadata and Reflection&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In this part, we show how to use reflection to fetch the metadata attributes we have described in the first part of the technical analysis series.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevegilham.blogspot.com/2010/05/f-excessively-lazy-sequences-and.html"&gt;Steve Gilham’s F# - excessively lazy sequences and stateful visitors&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Doing something a little bit complicated here: the functional equivalent of a visitor pattern, where I want to apply a few functions to a long and potentially expensive to traverse sequence of items (so ruling out a series of iterations over the visited nodes)&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharpnews.blogspot.com/2010/05/mini-hash-table.html"&gt;Jon Harrop’s Mini hash table&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Imagine you're stuck on a desert island with only a few keystrokes and you desperately need to create your own rudimentary hash table. What might you do?&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/b/jomo_fisher/archive/2010/05/25/how-to-enumerate-all-wmi-classes.aspx"&gt;Jomo Fisher’s How to Enumerate all WMI Classes&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This is the F# code you would use to enumerate all WMI classes on your system and show the properties of each. of each. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://ugh.cc/f-short-hand-syntax-for-maps-and-sets/"&gt;Fredrik Holmstrom’s F# short hand syntax for maps and sets&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;I’ve always though it a shame that there is no in language short hand syntax for maps and sets in F#, something like {{foo = 1; bar = 2}} and {#1, 2#} – but having a very flexible language at my disposal I set out to find some way to achieve this, mostly for fun – but maybe someone will find a practical use of it.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h2 align="center"&gt;Community&lt;/h2&gt;  &lt;h3&gt;&lt;a href="http://stackoverflow.com/questions/2905081/scala-versus-f-question-how-do-they-unify-oo-and-fp-paradigms"&gt;From StackOverflow: Scala vs F#, How do they unify OO and FP?&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;What are the key differences between the approaches taken by Scala and F# to unify OO and FP paradigms?&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stackoverflow.com/questions/2840714/f-static-member-type-constraints"&gt;From StackOverflow: F# Static Member Type Constraints&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I'm trying to define a function, factorize, which uses structural type constraints (requires static members Zero, One, +, and /) similar to Seq.sum so that it can be used with int, long, bigint, etc. I can't seem to get the syntax right, and can't find a lot of resources on the subject. This is what I have, please help.&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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+05%2f28%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+05%2f28%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+05%2f28%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+05%2f28%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-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/05/28/f-discoveries-this-week-05-28-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+05%2f28%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/28/f-discoveries-this-week-05-28-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20735" 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/Visual+Studio/default.aspx">Visual Studio</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/lazy/default.aspx">lazy</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/mapreduce/default.aspx">mapreduce</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/powerpack/default.aspx">powerpack</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/cufp/default.aspx">cufp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/silverlight/default.aspx">silverlight</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/WebSharper/default.aspx">WebSharper</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Dynamic+Lookup/default.aspx">Dynamic Lookup</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/metaprogramming/default.aspx">metaprogramming</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/refactor/default.aspx">refactor</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Active+Patterns/default.aspx">Active Patterns</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Computation+Expressions/default.aspx">Computation Expressions</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/IoC/default.aspx">IoC</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/ML/default.aspx">ML</category></item><item><title>F# Discoveries This Week 05/14/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/14/f-discoveries-this-week-05-14-2010.aspx</link><pubDate>Fri, 14 May 2010 21:06:49 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20671</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20671.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20671</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20671</wfw:comment><description>&lt;p&gt;Today, I’d like to thank all of the F# users on twitter.&amp;#160; &lt;/p&gt;  &lt;p&gt;Twitter’s a great place to stay up to date on the latest F# happenings and many of the posts you see here are either written by or passed on from members of this community.&amp;#160; So, if you are interested in becoming part of the &lt;a href="http://twitter.com/rickasaurus/f-fsharp-users"&gt;F# Twitter Community&lt;/a&gt;, I suggest starting with these frequent F# tweeters: &lt;a href="http://twitter.com/dmohl"&gt;@dmohl&lt;/a&gt;, &lt;a href="http://twitter.com/TigerHasse"&gt;@TigerHasse&lt;/a&gt;, &lt;a href="mailto:r@robertpi,@sforkmann"&gt;@robertpi&lt;/a&gt;, &lt;a href="http://twitter.com/sforkmann"&gt;@sforkmann&lt;/a&gt;, and &lt;a href="http://twitter.com/ptrelford"&gt;@ptrelford&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;I’ve also been known to &lt;a href="http://twitter.com/rickasaurus"&gt;occasionally tweet&lt;/a&gt; on F# and other programming topics.&amp;#160; Now, on to the links.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!2080.entry"&gt;Brian McNamara’s More F# Screencasts&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;My previous two screencasts (‘Getting started with F# in VS2010’ and ‘Editing F# source code in VS2010’) have been moved to MSDN, which means they’re now available in a variety of video formats.&amp;#160; A new screencast (‘Managing F# projects in VS2010’) has also been added, so check it out!&lt;/em&gt;&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://strangelights.com/blog/archive/2010/05/14/1660.aspx"&gt;Robert Pickering’s F# Talks in London&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I’ve been in London for the past few days. I arrived Tuesday afternoon and gave at talk at “The F#unctional Londoners Meetup Group” on the Tuesday evening. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/ee310028.aspx"&gt;James McCaffrey’s Combinations and Permutations with F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Understanding combinations and permutations is a fundamental skill in software testing. In this month’s Test Run column I show you how to work with combinations and permutations using code written in the new F# language.&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.infoq.com/presentations/Pragmatic-F-Sharp-in-Action"&gt;Amanda Laucher and Josh Graham’s Pragmatic F# in Action (video)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Amanda Laucher and Josh Graham introduce the audience to F# basics showing some of its main features, emphasizing what makes it better than imperative languages.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://tomasp.net/blog/fsharp-mvc-web.aspx"&gt;Tomas Petricek’s ASP.NET and F# Part 1 – Creating MVC Web Applications in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;If you want to use F# for creating an MVC application, you have a few options. It should be possible to create the web application solely as an F# project. However, we'll use a more convenient approach. We'll create a standard C# MVC project and move all the actual implementation to an F# library.&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.navision-blog.de/2010/05/12/fake-f-make-1-20-0-released/"&gt;Steffen Forkmann’s FAKE – F# Make 1.20.0 Released&lt;/a&gt; and     &lt;br /&gt;&lt;a href="http://www.navision-blog.de/2010/05/07/using-a-mailboxprocessor-to-speedup-fake-f-make/"&gt;Using a MailboxProcessor to speedup “FAKE – F# MAKE”&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Today I released a new bugfix release for “FAKE – F# Make”. We fixed some path and logging issues and as a new feature we introduced the @@ operator which allows to combine paths.&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.trelford.com/blog/post/Trading-on-IM-with-F.aspx"&gt;Phillip Trelford’s Trading on IM with F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The slides from my Trading on IM talk will be attached to this post, and the video/podcast should be appear on the Skills Matter website. I’ll also attach the 100 lines of code for shopping checkout sample, that works with a barcode scanner, I showed at the start of my presentation.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/05/integrating-f-and-erlang-using-otpnet.html"&gt;Daniel Mohl’s Integrating F# and Erlang Using OTP.NET&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Recently, I ran across a post that talked about a .NET library named OTP.NET.&amp;#160; OTP.NET is a port of a Java library named JInterface that allows a .NET application to act as an Erlang node.&amp;#160; OTP.NET hasn't been updated in a while and the API is a bit clunky, but the provided functionality is very cool.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h3&gt;Nick Grattan’s &lt;a href="http://nickgrattan.wordpress.com/2010/05/09/creating-web-parts-with-f/"&gt;Creating Web Parts with F#&lt;/a&gt; and     &lt;br /&gt;&lt;a href="http://nickgrattan.wordpress.com/2010/05/12/an-edsl-for-emitting-html-tables-in-web-parts-using-f-3/"&gt;An EDSL for Emitting HTML Tables in Web Parts using F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;When writing web parts in C# for SharePoint the System.Web “table” class or “table” HTML elements are most often used for controlling layout (“div” aficionados keep your ears covered…). The code quickly gets ugly and difficult to manage – there’s no direct control to ensure correct matching of opening and closing of tags. So how about writing an EDSL that provides a syntax and constructs for doing this?&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/05/tiny-expert-system-using-monads.html"&gt;Neil Carrier’s Tiny Expert System using Monads&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Below is a tiny expert system implemented using computation expressions. I managed to find a way to use the following computation expression methods: Bind, Delay, and Return.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Neil Carrier’s &lt;a href="http://techneilogy.blogspot.com/2010/05/simple-dsl-tokenization-to-evaluation.html"&gt;A Simple DSL: Tokenization to Evaluation&lt;/a&gt;,     &lt;br /&gt;&lt;a href="http://techneilogy.blogspot.com/2010/05/s-expressions-for-semantic-networks.html"&gt;S-Expressions for Semantic Networks&lt;/a&gt; and     &lt;br /&gt;&lt;a href="http://techneilogy.blogspot.com/2010/05/half-baked-scheme.html"&gt;A Half-Baked Scheme&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This post presents a small example of the above process. It implements a small interpreter which analyzes and evaluates LISP-like prefix expressions involving integers, multiplication, and division. For example: (+ (* 1 2) (* 3 4) evaluates to a data element containing the number 14. To make clear what is happening, be sure and examine the value of tokenList before it is evaluated. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin’s Technical analysis indicators in F# – &lt;a href="http://lepensemoi.free.fr/index.php/2010/05/05/technical-analysis-indicators-in-f-bands"&gt;Bands&lt;/a&gt;, &lt;a href="http://lepensemoi.free.fr/index.php/2010/05/10/technical-analysis-indicators-in-f-signal"&gt;Signal&lt;/a&gt; and &lt;a href="http://lepensemoi.free.fr/index.php/2010/05/10/technical-analysis-indicators-in-f-ehlers"&gt;Ehlers&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This is part of a series on technical analysis indicators in F#, based on the multi-language TA-Lib.&amp;#160; Quick disclaimer : some of these indicators are not verified.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharp-euler.wikispaces.com/"&gt;Yin Zhu’s F# for Project Euler Problems&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Some problems have two versions of solutions, the version I first learned F# and the version based on my current knowledge of F#. The first version is usually quite easy to understand even if the reader does not know F#, while the second uses some nice F# feature or good functional programming practice in general.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharpnews.blogspot.com/2010/05/java-vs-f.html"&gt;Jon Harrop’s Java vs. F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;What Cliff forgot to mention is that .NET also provides value types and a far more compelling example than complex numbers is the humble hash table.&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/timng/archive/2010/05/06/f-wpf-events.aspx"&gt;Tim Ng’s F# + WPF + Events&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I recently had to do some travelling for the VS launch event in Las Vegas and QCON event in Beijing. One of the things thats nice about travelling is that it gives you time to do some things you may not otherwise do - in my case, I had a chance to try to (re) learn WPF and see how I can use F# with WPF.&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/05/10/f-tacit-programming/"&gt;Mark Needham’s Tacit Programming&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I realised that this approach quite closely describes what I've been trying to drive towards in my most recent playing around with F# and it's actually quite fun trying to drive any intermediate state or storing of data in variables out of a program and just relying completely on function composition and higher order functions.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://dotnet.dzone.com/news/f-my-current-coding-approach"&gt;Mark Needham’s F#: My current coding approach&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I spent a bit of time over the weekend coding a simple generic builder for test objects in F# and I noticed that although there were similarity with the ways I drive code in C# or Java my approach didn't seem to be exactly the same.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://continuousdevelopment.wordpress.com/2010/05/13/f-vs-c-samples/"&gt;Ebru Cucen’s F# vs C# Samples&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;After my talk at ldnUG yesterday, I got nice suggestions from Zi Makki, and here is the first one: comparison between F# and C#, especially using LINQ. This subject had been quite popular once in a while, now it is probably my time to focus on this subject.&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.bjoernrochel.de/2010/05/12/kata-stringcalculator-in-f/"&gt;Bjorn Rochel’s Kata StringCalculator in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Two meetings ago we decided to do some coding on every meeting. The previous meeting we solved Kata FizzBuzz and on yesterday’s meeting we tried to dance with Roy Osheroves Kata StringCalculator.&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/gunnarpeipman/archive/2010/05/12/f-in-asp-net-mathematics-and-testing.aspx"&gt;Gunnar Peipman’s F# in ASP.NET, mathematics and testing&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Starting from Visual Studio 2010 F# is full member of .NET Framework languages family. It is functional language with syntax specific to functional languages but I think it is time for us also notice and study functional languages. In this posting I will show you some examples about cool things other people have done using 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://langexplr.blogspot.com/2008/02/defining-mutually-recursive-classes-in.html"&gt;Luis Diego Fallas’s Defining mutually recursive classes in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As explained in Adventures in F#--Corecursion defining mutually recursive functions requires the use of the &lt;code&gt;and&lt;/code&gt; keyword between function definitions. As briefly mentioned in the Type Definitions section of the manual, the &lt;code&gt;and&lt;/code&gt; keyword can also be used in types.&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=1846"&gt;Nancy Strickland’s New Features in F# 2.0 Training Video&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Describes the new features in F# version 2.0, which comes included in Visual Studio 2010.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://partialclass.blogspot.com/2010/05/dotnetrocks-in-boston.html"&gt;DotNetRocks in Boston (with F# Panel)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The panel suggested we add F# to our repertoire and understand its strengths, and use it where it's beneficial. I'm going to take that advice. Bottom line is if I can replace 50 lines of confusing C# code with 10 lines of elegant F#, I've done myself a service.&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/05/14/f-discoveries-this-week-05-14-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+05%2f14%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/14/f-discoveries-this-week-05-14-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/05/14/f-discoveries-this-week-05-14-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+05%2f14%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/14/f-discoveries-this-week-05-14-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/05/14/f-discoveries-this-week-05-14-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/14/f-discoveries-this-week-05-14-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/05/14/f-discoveries-this-week-05-14-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+05%2f14%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/14/f-discoveries-this-week-05-14-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/05/14/f-discoveries-this-week-05-14-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+05%2f14%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/14/f-discoveries-this-week-05-14-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/05/14/f-discoveries-this-week-05-14-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+05%2f14%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/05/14/f-discoveries-this-week-05-14-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20671" 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/asp.net/default.aspx">asp.net</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/math/default.aspx">math</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/dsl/default.aspx">dsl</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/twitter/default.aspx">twitter</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fake/default.aspx">fake</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/monad/default.aspx">monad</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/technical+analysis/default.aspx">technical analysis</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Euler/default.aspx">Euler</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/kata/default.aspx">kata</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Web+Parts/default.aspx">Web Parts</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/screencasts/default.aspx">screencasts</category></item><item><title>F# Discoveries This Week 04/16/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx</link><pubDate>Fri, 16 Apr 2010 18:16:13 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20507</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20507.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20507</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20507</wfw:comment><description>&lt;p&gt;It’s finally here.&amp;#160; After years of work, F# 2.0 is out and ready to change the way you program in .NET.&amp;#160; Come in for launch information, updates to projects written in F# and some great posts on actually using the language.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2010/04/12/f-2-0-released-as-part-of-visual-studio-2010.aspx"&gt;Don Syme’s F# 2.0 Released!&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;F# is a productive functional and object-oriented programming language for .NET that enables users to write simple code to solve complex problems. Its succinct syntax and powerful type inference lets users stay closer to the domain they are working in, and the integration into .NET and Visual Studio gives rich access to the expansive .NET platform.&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Other Posts on the F# Launch&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://research.microsoft.com/en-us/news/features/fsharp-041310.aspx"&gt;Rob Knies’s F#: Putting the ‘Fun’ into ‘Functional’&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://www.itjoblog.co.uk/2010/04/microsoft-f.html"&gt;Tim Anderson’s Why Microsoft F# is worth exploring&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://blog.andresays.org/2010/04/f-microsofts-new-functional-language/"&gt;Andre Burdette’s F#: Microsoft’s new functional language&lt;/a&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/lisa/archive/2010/04/16/vs-2010-keyboard-shortcut-posters-now-available-for-vb-c-f-c.aspx"&gt;Lisa Feigenbaum’s VS 2010 Keyboard Shortcut Posters Now Available for VB, C#, F# &amp;amp; C++&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The Visual Studio keyboard shortcut posters are always very popular and are now available for Visual Studio 2010! Please choose the one that corresponds to your choice of Visual Studio Development Settings. Print out a poster to place on the wall, or a quick reference card to keep on your desk.&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/chrsmith/archive/2010/04/13/good-news-and-sad-news-leaving-microsoft.aspx"&gt;Chris Smith’s Good News and Sad News - Leaving Microsoft&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;For me at least, the excitement and buzz of the Visual Studio 2010 launch will be short lived. Earlier this month I’ve accepted a position at another software company and will be leaving Microsoft. […]&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;However, I will still be part of the F# community and you will definitely see a second edition of Programming F# when the time comes.&amp;#160; &lt;strong&gt;In fact, next Tuesday 4/20 I’ll be giving a talk: &lt;/strong&gt;&lt;/em&gt;&lt;a href="http://www.communityforfsharp.net/april-2010-live-meeting-detail"&gt;&lt;em&gt;&lt;strong&gt;Writing a Java to x86 Compiler in F#&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;strong&gt; at 11:00AM PST.&lt;/strong&gt; &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.navision-blog.de/2010/04/13/fake-f-sharp-make-and-naturalspec-released/"&gt;Steffen Forkmann’s “FAKE – F# Make” and NaturalSpec 1.0 Released&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Yesterday Microsoft released the RTM versions of Visual Studio 2010, .NET Framework 4.0 and F# 2.0.0.0 and so it is time to announce the first official releases of “Fake – F# Make” and NaturalSpec. Both projects are now compatible with Visual Studio 2010 RC and RTM and the corresponding F# versions.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharprefactor.codeplex.com/"&gt;F# Refactor (No Release Yet, Check out the Repository)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Deisgned to bring Code Refactoring capabilities to the F# Language in Visual Studio 2010.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Brian McNamara’s &lt;a href="http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!1886.entry"&gt;Using VS2010 to edit F# source code (and a little LOGO EDSL)&lt;/a&gt; and &lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1895.entry"&gt;Fun with turtle-graphics in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The code on the screen during the video is a little &lt;/em&gt;&lt;em&gt;EDSL&lt;/em&gt;&lt;em&gt; (Embedded Domain-Specific Language) for a subset of LOGO.&amp;#160; The full code is below; you can just copy it into an F# application project to run it.&lt;/em&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1882.entry"&gt;Brian McNamara and Chris Smith’s Alt.NET Workshop slides and code&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Chris and I each had our own slide deck, so to go in order you’ll have to switch back and forth between the two decks, like we did during the talk (Chris’s intro, my part on functional programming, Chris’s section on OO programming, my part on Async, Chris’s case study).&amp;#160; At the end of my deck there’s also some bonus slides on units of measure that we didn’t have time for.&lt;/em&gt;&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.sdtimes.com/link/34251"&gt;David Worthington’s ‘Midori’ concepts materialize in .NET&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;quot;Midori is an attempt to create a new foundation for the operating system that runs ‘inside the box,’ on the desktop and in the rack. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/04/sliding-block-puzzle-in-f-and-wpf.html"&gt;Neil Carrier’s Sliding Block Puzzle in F# and WPF&lt;/a&gt; and     &lt;br /&gt;&lt;a href="http://techneilogy.blogspot.com/2010/04/simple-wpf-animation.html"&gt;Simple WPF Animation&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I realized that I wanted something more visual with which to test my search algorithms. I have also been wanting to learn how to write WPF applications using F#. To that end, I offer the following F#/WPF application of the famous Fifteen Puzzle, the ancestor of all sliding-block puzzles.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;em&gt;&amp;#160;&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/04/generic-binary-heap.html"&gt;Neil Carrier’s Generic Binary Heap&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I'm pretty sure I'm going to need a priority queue for my A* search, so I decided to code a generic heap class in F#. The F# code below is largely a translation from Robert Sedgewick's Algorithms in C (Parts 1-4).&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.trelford.com/blog/post/Whate28099s-happening-Loosely-coupled-events.aspx"&gt;Phillip Trelford’s What’s happening? Loosely coupled events&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;For example if you wanted to publish an event from any window that could be observed by any other window without them all having intimate knowledge of each other.&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.trelford.com/blog/post/Implementing-IObservable-and-extending-Observable.aspx"&gt;Phillip Trelford’s Implementing IObservable and extending Observable&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Following on from my post yesterday on implementing loosely coupled events; the following somewhat longer F# sample provides a simple System.IObservable&amp;lt;T&amp;gt; implementation for event consumers.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/04/distributed-hash-table-dht-in-f-using.html"&gt;Daniel Mohl’s A DHT in F#: Using Higher Order Functions for the Service Operation Calls&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In my last post, I provided a start to a distributed hash table in F# using WCF.&amp;#160; One of the major limitations of that example was that only two nodes could ever be on the node network at a given time.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/04/talking-to-couchdb-via-f-and-symbiote.html"&gt;Daniel Mohl’s Talking to CouchDB via F# and Symbiote&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;Alex Robson recently announced a set of libraries that, among other things, makes talking with CouchDB from a .NET language very easy. […] As you can see, interacting with CouchDB via F# and Symbiote is a snap.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://v2matveev.blogspot.com/2010/04/mailboxprocessors-erlang-style.html"&gt;Vladimir Matveev’s MailboxProcessors: Erlang-style concurrency&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;MailboxProcessor is combination of message queue and message handler build atop of Asyncs infrastructure.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://geekswithblogs.net/MarkPearl/archive/2010/04/13/f-and-the-useful-infinite-sequence-i-think.aspx"&gt;Mark Pearl’s F# and the useful infinite Sequence (I think)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;So the question is begged - how would you create a sequence that you are sure will be large enough to hold the solution to the problem? Well… You can’t know!&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/04/12/f-the-defaultarg-function/"&gt;Mark Needham’s F#: The ‘defaultArg’ function&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;While reading through an old blog post by Matthew Podwysocki about writing F# code in a functional rather than imperative way I came across the 'defaultArg' function which I haven't seen previously.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;   &lt;blockquote&gt;     &lt;p&gt;&lt;a href="http://blog.andresays.org/2010/04/f-microsofts-new-functional-language/"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/h3&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/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+04%2f16%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-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/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+04%2f16%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-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/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-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/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+04%2f16%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-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/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+04%2f16%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-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/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+04%2f16%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20507" 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/NaturalSpec/default.aspx">NaturalSpec</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</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/Infinite+Sequences/default.aspx">Infinite Sequences</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/fake/default.aspx">fake</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Mailboxes/default.aspx">Mailboxes</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_+2.0/default.aspx">F# 2.0</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/keyboard+shortcuts/default.aspx">keyboard shortcuts</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/LOGO/default.aspx">LOGO</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/refactor/default.aspx">refactor</category></item><item><title>F# Discoveries This Week 03/26/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/26/f-discoveries-this-week-03-26-2010.aspx</link><pubDate>Fri, 26 Mar 2010 16:47:24 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20385</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20385.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20385</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20385</wfw:comment><description>&lt;p&gt;A ton of new posts this week, far too many to enumerate.&amp;#160; My “Favorite New F# Blogger of the Week” (seems like this is becoming a trend) is the mysterious Neil of &lt;a href="http://techneilogy.blogspot.com/"&gt;Techneilogy&lt;/a&gt;.&amp;#160; I’ve been enjoying his honest exploration of F# and semantic networks very much.&lt;/p&gt;  &lt;p&gt;Also, I’ve been hanging around in the &lt;a&gt;##fsharp channel on irc.freenode.net&lt;/a&gt; a bit.&amp;#160; There’s a bunch of great people there, some of whom are already using F# at work and are eager to talk about it.&amp;#160; Check it out if you have the inclination. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/chrsmith/archive/2010/03/18/writing-a-starcraft-bot-in-f.aspx"&gt;Chris Smith’s Writing a StarCraft Bot in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;We now have all the pieces in place, but creating an AI-bot for a program not meant to be extended will be tricky. StarCraft Bot 9K has the following architecture, which follows the footsteps of the Java ProxyBot available on the AIIDE Website.&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.justinlee.sg/2010/03/16/don-syme-introduction-to-f"&gt;Don Syme’s Video Introductions to F# C9 Series&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;Who better to lecture on the topic than Don? This three part series will serve as an introduction to F#, including insights into the rationale behind the history and creation of Microsoft’s newest language.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Luca Bolognese’s Tracing spread trades in F# parts &lt;a href="http://lucabolognese.wordpress.com/2010/03/13/tracking-spread-trades-in-f-and-hooking-up-xunit-and-fscheck-part-1/"&gt;one (XUnit and FsCheck)&lt;/a&gt; and &lt;a href="http://lucabolognese.wordpress.com/2010/03/19/tracking-spread-trades-in-f-and-wpf-mvvm-part-ii/"&gt;two (WPF and MVVM)&lt;/a&gt;.&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I have a bunch of spread trades open. Spread trades are trades where you buy something and you sell something else generally in the same amount. You hope to profit from the widening of the spread between the price of the two instruments.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://strangelights.com/blog/archive/2010/03/24/1658.aspx"&gt;Robert Pickering’s #Develop, F# and Google Summer of Code&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Chris told me one area they are interested in extending is the F# integration into #Develop; particularly they’d like to get the auto-completion working. So if you’re a CS student on the lookout for a summer job, you could end up being paid by Google to work on 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://strangelights.com/blog/archive/2010/03/20/1657.aspx"&gt;Robert Pickering’s Beginning F# Workshop and Progressive.Net&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I’ll in London on the 10th/11th May giving a two day course entitle “Beginning F# Workshop” in conjunction with the lovely folks at Skills Matter.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blob.inf.ed.ac.uk/aplcourse/2010/03/lecture-19-hetmet-fsharp/"&gt;Edinburgh University’s Advances in Programming Languages Course, Lecture 19: Heterogeneous Metaprogramming in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;General overview of metaprogramming, with a range of examples in different languages ranging from C macros through Java reflection to MetaOCaml. Brief summary of the F# language, its history, features, and upcoming release in VS 2010.&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.mattssoftwareblog.com/?p=233"&gt;Matt Moloney’s Dynamically extending applications using MEF and the new F# CodeDom.&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I wrote this little applet to see what the combination of MEF and the F# CodeDom would look like, and for the record it looks really really good.&amp;#160; This combination opens a whole lot of doors. By using the F# CodeDom the plugin source code can brought in from anywhere;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lepensemoi.free.fr/index.php/2010/03/20/technical-analysis-indicators-in-f-momentu"&gt;Julien Ortin’s Technical analysis indicators in F# – Momentum&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This is part of a series on technical analysis indicators in F#, based on the multi-language TA-Lib.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://v2matveev.blogspot.com/2010/03/solving-python-challenge-with-f.html"&gt;Vladimir Matveev’s Solving Python Challenge with F# – The Chronicles&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;WARNING!!! If you are going to pass through the Python challenge then stop reading this post, cause it contains solution to 24 level.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://v2matveev.blogspot.com/2010/03/data-structures-finger-tree-part-15.html"&gt;Vladimir Matveev’s Data structures: Finger Tree (Part 1.5)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last time we stopped on “immutable deque” stage. Today we will explore a few additions that can endow deque with super (hmm..human/deque?) powers.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://v2matveev.blogspot.com/2010/03/fun-with-recursion.html"&gt;Vladimir Matveev’s Fun with recursion&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Recursion is an extremly useful tool in the toolbox of every developer. Many problems have recursive nature and thus best solved with recursion. Tree-like stucture is a very nice candidate for demonstration.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://v2matveev.blogspot.com/2010/03/f-and-wpf-or-how-to-make-life-bit.html"&gt;Vladimir Matveev’s F# and WPF or how to make life a bit easier&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Not so long ago I was working of small F# script (excellent feature BTW) that performs some data processing and displays summary (using WPF)at the end. All the WPF samples I met in the web utilize object model to create UI, but let's make a confession: making relatively complex UI with object model sucks.&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.trelford.com/blog/post/F-Agents-and-Retlang-quick-comparison.aspx"&gt;Phillip Trelford’s F# Agents and Retlang: quick comparison&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;Erlang style message passing is a great way of simplifying concurrency. The open source Retlang library aims to bring some of the benefits to .Net languages like C# and VB.Net. Whereas F# has built-in message passing support with the MailboxProcessor also referred to as Agents.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Neil’s &lt;a href="http://techneilogy.blogspot.com/2010/03/recap.html"&gt;Recap of Tiny Expert System&lt;/a&gt; and &lt;a href="http://techneilogy.blogspot.com/2010/03/next-step-in-tiny-expert-system.html"&gt;Next Step in the Tiny Expert System?&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Before I move on, let me post a re-do of the the original lazy-evaluated style tiny expert system, incorporating all I've learned about F# over the last couple of weeks. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Neil’s &lt;a href="http://techneilogy.blogspot.com/2010/03/reified-semantic-network.html"&gt;Refined Semantic Network&lt;/a&gt;, &lt;a href="http://techneilogy.blogspot.com/2010/03/data-driven-semantic-network.html"&gt;Data-Driven Semantic Network&lt;/a&gt;, &lt;a href="http://techneilogy.blogspot.com/2010/03/latest-semantic-net-experiment.html"&gt;Latest Semantic Net Experiment&lt;/a&gt;, &lt;a href="http://techneilogy.blogspot.com/2010/03/yet-another-semantic-network.html"&gt;Yet Another Semantic Network&lt;/a&gt; and &lt;a href="http://techneilogy.blogspot.com/2010/03/semantic-net-search-01.html"&gt;Semantic Net Search 0.1&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Continuing on the path of using classic A.I. tutorial examples to teach myself F#, here is an example using semantic networks. So I created a system in which basic semantic nodes and links can be reified into object instances.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Neil’s &lt;a href="http://techneilogy.blogspot.com/2010/03/search-using-continuations.html"&gt;Search Using Continuations&lt;/a&gt; and &lt;a href="http://techneilogy.blogspot.com/2010/03/improved-continutation-search.html"&gt;Improved Continuation Search&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This one returns a list in the right order, and the example shows how to detect circularities. It's a little tricky; the tail recursion involves both a direct tail recursion and a continuation that results in a tail call. I had to run tests to convince myself it really wasn't eating up the stack, lol.&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.sturmnet.org/blog/2010/03/22/slides-and-samples-from-devweek-2010"&gt;Oliver Strum’s DevWeek 2010 Slides and Samples&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last week I was down in London and spoke at DevWeek 2010. As usual, it was a great conference! Thanks to everybody who attended my talks!&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.codingday.com/happy-pi-day-and-monte-carlo-method"&gt;Can Erten’s Happy Pi Day and Monte Carlo Method&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Calculating Pi is generally the hello world of Monte Carlo Method in Stochastic Calculus. So for today, I will try to give a sample calculation of pi as monte carlo 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://mdavey.wordpress.com/2010/03/26/f-and-xsd-exe/"&gt;Ade Miller’s NBody.net F# Integrators Code Available&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;A Forward Euler integrator and a wrapper for it which implements a Barnes-Hut tree code. I’ve blogged about this before. It’s an Octree implementation in F# which uses the asynchronous computations feature to scale across multiple cores.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://mdavey.wordpress.com/2010/03/26/f-and-xsd-exe/"&gt;Matt Davey’s F# and XSD.EXE&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Which, thanks to Luke over on the F# Visual Studio team, means I can do this: […] Which now means I can stop hand crafting FpML types in my F# cashflow code.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://continuousdevelopment.wordpress.com/2010/03/20/f-samples/"&gt;Ebru Cucen’s F# Samples&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;If you had the chance to start playing with F#, here are some nice challenges&amp;#160; for you. If not you may want to look at from where to start.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Daniel Mohl’s Code Kata and Project Euler - Problems &lt;a href="http://bloggemdano.blogspot.com/2010/03/code-kata-and-project-euler.html"&gt;One&lt;/a&gt; and &lt;a href="http://bloggemdano.blogspot.com/2010/03/project-euler-problem-2.html"&gt;Two&lt;/a&gt;, &lt;/h3&gt;  &lt;blockquote&gt;   &lt;h3&gt;See also: &lt;a href="http://geekswithblogs.net/mroberts/archive/2010/03/25/playing-with-f.aspx"&gt;Mike Robert’s solution to problem one&lt;/a&gt; and &lt;a href="http://github.com/forki/NaturalSpec/blob/c6e4616b0e8c17f871265c320aaf11e8677833c9/src/test/Spec.Euler/Problem2.fs"&gt;Steffen Forkmann’s solution to problem two&lt;/a&gt;.&lt;/h3&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Recently, I've been thinking about the concept of Code Kata and the personal improvement that this type of practice can bring.&amp;#160; I started thinking of types of exercises that I could do to utilize this concept.&amp;#160; After looking around on the web, I landed on projecteuler.net and found that the problems listed seemed to fit my agenda perfectly.&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/03/26/f-discoveries-this-week-03-26-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+03%2f26%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/26/f-discoveries-this-week-03-26-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/03/26/f-discoveries-this-week-03-26-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+03%2f26%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/26/f-discoveries-this-week-03-26-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/03/26/f-discoveries-this-week-03-26-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/26/f-discoveries-this-week-03-26-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/03/26/f-discoveries-this-week-03-26-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+03%2f26%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/26/f-discoveries-this-week-03-26-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/03/26/f-discoveries-this-week-03-26-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+03%2f26%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/26/f-discoveries-this-week-03-26-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/03/26/f-discoveries-this-week-03-26-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+03%2f26%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/03/26/f-discoveries-this-week-03-26-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20385" 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/FsCheck/default.aspx">FsCheck</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/xunit/default.aspx">xunit</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/agents/default.aspx">agents</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</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/video/default.aspx">video</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/mvvm/default.aspx">mvvm</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/MEF/default.aspx">MEF</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/summer+of+code/default.aspx">summer of code</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/semantic+networks/default.aspx">semantic networks</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/expert+systems/default.aspx">expert systems</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/nbody.net/default.aspx">nbody.net</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/CodeDom/default.aspx">CodeDom</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/StarCraft/default.aspx">StarCraft</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/metaprogramming/default.aspx">metaprogramming</category></item><item><title>F# Discoveries This Week 02/08/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-2010.aspx</link><pubDate>Mon, 08 Feb 2010 19:28:41 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20161</guid><dc:creator>RickM</dc:creator><slash:comments>2</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20161.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20161</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20161</wfw:comment><description>&lt;p&gt;Back again with another F# community roundup.&amp;#160;&amp;#160; There’s been a ton of great content this week, almost too much.&amp;#160; To try to combat this I’ve attempted to sort posts roughly in terms of how interesting I found them.&amp;#160; All were worth the read though.&lt;/p&gt;  &lt;p&gt;Also, I’ll be speaking this Wednesday on F# at the &lt;a href="http://www.bostondotnet.org/"&gt;Boston .NET User Group&lt;/a&gt;.&amp;#160; If you find yourself there, be sure to say hello!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://channel9.msdn.com/shows/Going%20Deep/C9-Lectures-Dr-Don-Syme-Introduction-to-F-1-of-3/"&gt;Don Syme’s Introduction to F# (Video 1 of 3)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Dr. Don Syme is a principal researcher in MSR Cambridge. He has a rich history in programming language research, design, and implementation (C# generics being one of his most recognized implementations), and is the principle creator of 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://blogs.msdn.com/ashleyf/archive/2010/01/30/language-vs-library.aspx"&gt;Ashley Feniello’s FScheme Part 8: Language vs. Library&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Perhaps this post should have gone along with the one about macros and how Lisp is a “programmable programming language.” The common tension in any language or runtime design is how much to build in as primitives and how much to implement as libraries within the language or atop the runtime.&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/lukeh/archive/2010/02/01/f-for-parallel-and-asynchronous-programming-pdc-2009.aspx"&gt;Luke Hoban’s F# for Parallel and Asynchronous Programming&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last November at PDC 2009 in Los Angeles I gave a talk on F# for Parallel and Asynchronous Programming.&amp;#160; The talk begins by covering basic F# concepts, and then focuses on four challenging issues related to concurrency and the tools F# brings for addressing these - immutability, async workflows, and agents.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://brehaut.net/blog/2010/on_iteration"&gt;Andrew Brehaut’s On Iteration (Could just as well be entitled “Why Programmers Leave Python/C#/Java&amp;quot;)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;There is an observable trend in Python programmers that results in a reasonable section of them moving to functional programming languages. This trend is encouraged by the Python language, and has a couple of temporal considerations.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/02/05/using-and-abusing-the-f-dynamic-lookup-operator.aspx"&gt;Matthew Podwysocki’s Using and Abusing the F# Dynamic Lookup Operator&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Much like C# 4.0 has the ability to do dynamic lookup, F# also has the same capability, although in a different capacity.&amp;#160; The language has support for a dynamic lookup get operator ( ? ) and set operator ( ?&amp;lt;- ), but note that I said support and not actual implementation.&amp;#160; The actual implementation is up to you and how you want to use it.&lt;/em&gt;&amp;#160;&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/02/01/a-kick-in-the-monads-writer-edition.aspx"&gt;Matthew Podwysocki’s A Kick in the Monads – Writer Edition&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In the past couple of Monads posts, we’ve talked briefly about the State and Reader Monads and their potential uses and misuses.&amp;#160; Before this series completes, I have a few more to cover including the Writer, Continuation and eventually Observable monad.&amp;#160; Today, we’ll get started looking at the Writer Monad and what it can do for us.&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/ashleyf/archive/2010/02/06/recursion-is-the-new-iteration.aspx"&gt;Ashley Feniello’s Recursion Is the New Iteration&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Not all recursive expressions represent recursive behavior. In fact, iteration can be expressed recursively. One trick when considering the process that an expression represents is to think of functions as reducing to values rather than returning them. In a pure functional style (precisely because of referential transparency) you can do analysis by successive substitution.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin continues his series on Purely Functional Data Structures with a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/05/real-time-double-ended-queue"&gt;Real-time double-ended queue&lt;/a&gt;, a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/05/skew-binary-random-access-list"&gt;Skew binary random access list&lt;/a&gt; and a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/05/binary-random-access-list"&gt;Binary random access list&lt;/a&gt;&lt;/h3&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://fsharpnews.blogspot.com/2010/02/john-conways-game-of-life-in-32-lines.html"&gt;Flying Frog Consultancy Presents - John Conway’s Game of Life in 32 lines of F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;John Conway's Game of Life is a famous example of a simple cellular automaton that produces remarkably diverse results. The game can be implemented in only 32 lines of F# including real-time visualization using Windows Presentation Foundation as follows:&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!1778.entry"&gt;Brian McNamara’s An RSS Dashboard in F# (Part 3)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last time I covered IObservables and we created a useful ObservableSource class.&amp;#160; Today I’ll cover the next technology piece of the app: reading RSS feeds.&amp;#160; I’ll discuss the design considerations regarding how to poll feed for updates and publish feed items as IObservables, and walk through one implementation.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://nickgravelyn.com/2010/02/pong-in-fsharp-with-xna-game-studio/"&gt;Nick Gravelyn’s Pong in F# with XNA Game Studio&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;A few of my colleagues were discussing F# today and when/where/how it is/isn’t better than C#. I haven’t ever really used F# beyond a very, very brief look at the syntax, so tonight I decided to see what it was all about. As a little project, I decided to make Pong with XNA Game Studio using F# with Visual Studio 2010.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://cultivatingcode.com/2010/02/03/maybe-f-isnt-for-you/"&gt;Jim Burger’s Maybe F# isn’t for you…&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;If you aren’t excited about new ways to tackle the concurrency problem, or new approaches to handling generic and mathematical problems, and if the thought of breaking out the shiny new lexer and parser don’t give you a tingle, then maybe F# isn’t actually marketed at you at all.&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.codeproject.com/KB/net-languages/COBOL-FSharp1.aspx"&gt;Alex Turner’s Calling F# from COBOL and Back Again (CodeProject)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Running languages on .NET is ultra-powerful. Using managed COBOL (from Micro Focus), it is possible to use F# code to work with COBOL code. Imagine a Cloud based F# map reduce system consuming legacy COBOL - yes, that really is on the horizon.&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.navision-blog.de/2010/02/08/new-syntactic-sugar-for-fake-f-make-getting-rid-of-magic-strings/"&gt;Steffen Forkmann’s New syntactic sugar for “FAKE – F# Make”&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The new version 0.27 of “FAKE – F# Make” comes with new syntactic sugar for build targets and build dependencies. Don’t be afraid the old version is still supported – all scripts should still work with the new 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://blogs.msdn.com/jaredpar/archive/2010/02/03/having-fun-with-events-in-f.aspx"&gt;Jared Parsons’s Having fun with events in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;h6&gt;&lt;/h6&gt;    &lt;p&gt;&lt;em&gt;Recently I ran into a situation where I needed to handle some events in F# in a special way.&amp;#160; In this particular case I wanted to be able to disable and re-enable my handler based on changes in the program.&amp;#160; Essentially the C# equivalent of continually adding and removing the handlers.&lt;/em&gt;&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevegilham.blogspot.com/2010/01/glade-from-f.html"&gt;Steve Gilham’s “Hello Glade#” from F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Another bit of spiking, a rather tardy follow up from raw GTK#, starting from the C# example at the Mono Project site, but incorporating the earlier example, so as to build in a clean application exit, for one thing.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://langexplr.blogspot.com/2010/02/using-webcam-with-wia-and-f.html"&gt;Luis Diego Fallas’s Using a Webcam with WIA and F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In this post I'm going to show a small example of taking a picture using a Webcam with Windows Image Adquisition 1.0 . This API seems to have changed in Vista and above, the following code only applies to XP.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharpnews.blogspot.com/2010/02/tic-tac-toe-demo.html"&gt;Flying Frog Consultancy’s WPF Tic-tac-toe demo&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The article walks through the design and implementation of a multithreaded program that uses logic programming to create an unbeatable computer opponent and Windows Presentation Foundation to provide a graphical user interface in only 115 lines of elegant F# code!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://developers.slashdot.org/story/10/02/07/0059233/An-Interview-With-F-Creator-Don-Syme"&gt;A (Relatively Reasonable) Discussion of F# on Slashdot&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;OCatenac passes along an interview with Don Syme, chief designer of F#, which is Microsoft Research's offering for functional programming on the .Net platform. Like Scala, which we discussed last fall, F# aims at being an optimal blend of functional and object-oriented languages.&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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+02%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+02%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f08%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20161" 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/wpf/default.aspx">wpf</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/data+structures/default.aspx">data structures</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/events/default.aspx">events</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fake/default.aspx">fake</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/slashdot/default.aspx">slashdot</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/xna/default.aspx">xna</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/scheme/default.aspx">scheme</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/rss/default.aspx">rss</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/WIA/default.aspx">WIA</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/webcam/default.aspx">webcam</category></item><item><title>F# Discoveries This Week 08/31/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/31/f-discoveries-this-week-08-31-2009.aspx</link><pubDate>Mon, 31 Aug 2009 17:44:43 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19232</guid><dc:creator>RickM</dc:creator><slash:comments>2</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19232.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19232</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19232</wfw:comment><description>&lt;p&gt;This week we have a fresh video interview with Chris Smith.&amp;#160; This is in addition to some excellent writing on prototyping DSLs, asynchronous workflows, WPF, functional composition and the open/closed principle.&lt;/p&gt;  &lt;p&gt;I would also like to note that for the next few weeks I will be off vacationing.&amp;#160; I apologize in advance for any missed or delayed updates.&amp;#160; If you live in Japan and would like to discuss F# or functional programming in general, I would love to meet up with you for tea or a beer.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.davidgiard.com/2009/08/26/ChrisSmithOnF.aspx"&gt;Chris Smith is interviewed on Technology and Friends&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Chris Smith is a software design engineer on the Microsoft Visual F# team. In this interview, Chris describes the uses of F# and how it differs from object-oriented languages, such as C# and Visual Basic.&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.devx.com/dotnet/Article/42552"&gt;Adam Granicz discusses Prototyping DSLs in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;To build a domain specific language, you need a quick and effective prototyping process that can parse your language syntax and perform semantic checking. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2009/08/f-asynchronous-directorygetfiles-and.html"&gt;Daniel Mohl writes an Asynchronous Directory.GetFiles and File.Copy&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The following examples show how it could be solved with F# both synchronously and asynchronously. While this is definitely not production ready, it provides a few samples of how asynchronous workflows can be used in the wild.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevehorsfield.wordpress.com/2009/08/26/example-programmatic-addition-of-wpf-data-template/"&gt;Steve Horsfield describes programmatic addition of a WPF Data Template to a Resource Dictionary&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I have noticed some interest in my earlier post on how to add a WPF data template to a resource dictionary in code and so this post is a demonstration of the technique.&amp;#160; The code is presented in F# but I have deliberately kept the code simple and fairly non-functional so that those of a C# or VB.NET background can follow the process easily.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevehorsfield.wordpress.com/2009/08/24/f-composing-functions/"&gt;Steve Horsfield explores function composition operators&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Following on from my last post, and in preparation for a series on producing a full WPF application in F#, in this post I discuss the differences between the |&amp;gt; and &amp;gt;&amp;gt; operators and some additional functions I find helpful for composing functions.&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.navision-blog.de/2009/08/24/the-openclosed-principle-c-vs-f/"&gt;Steffen Forkmann demonstrates the open/closed principle in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In object-oriented programming, the open/closed principle states &amp;quot;software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification”&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;If we follow this principle we get lot’s of small and testable classes. I want to demonstrate this with a simple spam checker for mails.&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/08/31/f-discoveries-this-week-08-31-2009.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+08%2f31%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/31/f-discoveries-this-week-08-31-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/31/f-discoveries-this-week-08-31-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f31%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/31/f-discoveries-this-week-08-31-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/31/f-discoveries-this-week-08-31-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/31/f-discoveries-this-week-08-31-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/31/f-discoveries-this-week-08-31-2009.aspx&amp;amp;title=F%23+Discoveries+This+Week+08%2f31%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/31/f-discoveries-this-week-08-31-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/31/f-discoveries-this-week-08-31-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f31%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/31/f-discoveries-this-week-08-31-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/31/f-discoveries-this-week-08-31-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f31%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/31/f-discoveries-this-week-08-31-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19232" 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/open+closed+principle/default.aspx">open closed principle</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/dsl/default.aspx">dsl</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/asynchronous+workflows/default.aspx">asynchronous workflows</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/function+composition/default.aspx">function composition</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/asynchronous/default.aspx">asynchronous</category></item><item><title>F# Discoveries This Week 08/23/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-2009.aspx</link><pubDate>Mon, 24 Aug 2009 02:18:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19187</guid><dc:creator>RickM</dc:creator><slash:comments>3</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19187.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19187</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19187</wfw:comment><description>&lt;p&gt;This week Steve Horsfield continues his adventures with WPF while Matthew Podwysocki posts more on the .NET Event Model.&amp;nbsp; Meanwhile, John Harrop shares a video tutorial on F# interactive and Chris Smith provokes meta discussion on the best way to present F#.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;Upcoming Events&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blog.codinglight.com/2009/08/houston-f-users-group-august-27th-700.html"&gt;Houston F# Users Group&lt;/a&gt; – Meeting August 27th 7:00pm. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://fsug.org/"&gt;New England F# User Group&lt;/a&gt; – Meeting September 7th 6:30pm. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you would like your F# event to be listed here, please let me know via the email link at the top of this page.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;Posts of Note&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://stevehorsfield.wordpress.com/2009/08/15/wpf-resources-and-f/"&gt;Steve Horsfield on WPF, Resources and F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;The problem is a simple one: add a toolbar image into an assembly and make it available as a resource in WPF, but use only XAML and F#.&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevehorsfield.wordpress.com/2009/08/21/fsharp-chaining-side-effects-and-dependency-properties/"&gt;Steve Horsfield on Chaining Side Effects in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;The first question that any functional programmer should ask is, “why are there side effects?!” Side effects are anathema to functional programming purists because they introduce many kinds of undesirable characteristics into code, limiting optimization and restructuring options.&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2009/08/21/f-first-class-events-creating-and-disposing-handlers.aspx"&gt;Matthew Podwysocki on Creating and Disposing .NET Event Handlers&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;So far in this series, I’ve covered a bit about what first class events are in F# and how you might use them. […] This time, let’s look at how we might manage the lifetime of a given event subscription.&lt;/i&gt;&amp;nbsp;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.youtube.com/watch?v=e3ah_JggcVw"&gt;Jon Harrop’s F# Interactive Tutorial Video for Beginners&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;This is a quick teaching on the use of the F# Interactive Mode which&amp;nbsp; lets you, like the OCaml top level, type code in in real time.&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://msdnrss.thecoderblogs.com/2009/08/21/f-for-architects-hitting-the-sweet-spot/"&gt;Chris Smith’s F# for Architects: Hitting the Sweet Spot&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;When I was at DevLink last week I gave a talk designed to specifically identify why and when you should use F#. I was going to post the slides, but then I realized that they are in the form of a ‘presentation deck’ rather than a ‘reading deck’. So rather than having a few vague slogans and images in a .pptx file, I’ve transcribed my talking points.&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I would consider Chris Smith’s post a must read for anyone giving talks on, or otherwise promoting, F#.&amp;nbsp; I gave much thought to a number of different aspects of my F# presentations after reading this.&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/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+08%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;title=F%23+Discoveries+This+Week+08%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f23%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19187" 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/talks/default.aspx">talks</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/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/video/default.aspx">video</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/events/default.aspx">events</category></item><item><title>F# Discoveries This Week 08/16/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/16/f-discoveries-this-week-08-16-2009.aspx</link><pubDate>Sun, 16 Aug 2009 23:53:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19128</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19128.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19128</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19128</wfw:comment><description>&lt;p&gt;This week we have some user group meeting announcements, WPF dependency properties, first class composable events, and a few interesting statistical modeling techniques.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.codinglight.com/2009/08/houston-f-users-group-august-27th-700.html"&gt;Houston F# Users Group&lt;/a&gt; – Meeting August 27th 7:00pm.&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;We'll be having an interactive, hands-on session where we'll actually get to code some F#. All levels of knowledge are welcome, and there will be food!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsug.org/"&gt;New England F# User Group&lt;/a&gt; – Meeting September 7th 6:30pm. &lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Robert Pickering will be speaking on why F# is the way it is.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevehorsfield.wordpress.com/2009/08/13/creating-wpf-dependency-properties-in-fsharp/"&gt;Steve Horsfield on Creating WPF Dependency Properties in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This is a quick post demonstrating how to create WPF Dependency Properties in F#. There is a bit of a trick to it as you have to use the val keyword to define a field and that field must be mutable and you also have to use explicit interface access.&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/2009/08/12/first-class-composable-events-in-f.aspx"&gt;Matthew Podpysocki on First Class Composable Events in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Event-based programming is a pretty common scenario in .NET programming today, especially used in user interface programming.&amp;#160; These events are a way of a class to notify when something of interest happens to an object, such as clicking a button on a form.&amp;#160; Just as you would do in C#, programming with events is fairly straight forward to add and remove event handlers from an object.&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.caribousoftware.com/BobsBlog/archive/2009/08/10/f-gls-in-progress.aspx"&gt;The Mad Economist on General Linear Regression in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In the general linear regression model, one of the assumptions is that the variance is constant across all observation points.&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.caribousoftware.com/BobsBlog/archive/2009/08/12/f-gls-serial-correlation.aspx"&gt;The Mad Economist on Serial Correlation in F# (Part 1)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The question here is to see how sensitive coal consumption is the relative price of coal versus natural gas.&amp;#160; For example, it is interesting to know how easily electric utilities can swap coal for gas depending on their relative prices.&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.caribousoftware.com/BobsBlog/archive/2009/08/14/f-serial-correlation-2-in-progress.aspx"&gt;The Mad Economist on Serial Correlation (Part 2)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In my last post I set up an example dataset and then showed how use the Durbin-Watson statistic to test for serial correlation.&amp;#160; Once we have recognized that serial correlation exists, we need to make the appropriate adjustments because OLS is no longer the best estimation technique.&amp;#160; We need to rely on GLS to perform our estimation.&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/08/16/f-discoveries-this-week-08-16-2009.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+08%2f16%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/16/f-discoveries-this-week-08-16-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/16/f-discoveries-this-week-08-16-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f16%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/16/f-discoveries-this-week-08-16-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/16/f-discoveries-this-week-08-16-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/16/f-discoveries-this-week-08-16-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/16/f-discoveries-this-week-08-16-2009.aspx&amp;amp;title=F%23+Discoveries+This+Week+08%2f16%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/16/f-discoveries-this-week-08-16-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/16/f-discoveries-this-week-08-16-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f16%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/16/f-discoveries-this-week-08-16-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/16/f-discoveries-this-week-08-16-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f16%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/16/f-discoveries-this-week-08-16-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19128" 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/fsug/default.aspx">fsug</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/linear+regression/default.aspx">linear regression</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/serial+correlation/default.aspx">serial correlation</category></item><item><title>Discoveries This Week 07/19/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/07/19/discoveries-this-week-07-19-2009.aspx</link><pubDate>Sun, 19 Jul 2009 18:45:06 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:18877</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/18877.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=18877</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=18877</wfw:comment><description>&lt;p&gt;With the impending release of Visual Studio 2010, the F# Community continues to wind up.&amp;#160; This week we have finally gotten our F# User Group Videos up.&amp;#160; In addition, we also have a wide ranging selection of fresh F# content including Units of Measure, XML parsing, WPF Games and Pattern Matching.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsug.org/PreviousSpeakers/tabid/66/Default.aspx"&gt;New England F# User Group Talks&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;Note: As the server is currently moving to a new location, our site may be temporarily down.&amp;#160; If you encounter an error, please try again later.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This past week we’ve managed to get up video from a bunch of our past &lt;a href="http://fsug.org/"&gt;FSUG&lt;/a&gt; talks.&amp;#160; Original F# video content here from such famed speakers as &lt;a href="http://www.richardhaleshawgroup.com/rhsgroup/DesktopDefault.aspx"&gt;Richard Hale Shaw&lt;/a&gt; and &lt;a href="http://qconlondon.com/london-2009/speaker/Amanda+Laucher"&gt;Amanda Laucher&lt;/a&gt;.&amp;#160; &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2009/07/10/modeling-dsls-with-f-and-units-of-measure.aspx"&gt;Matthew Podwysocki’s Modeling DSLs with F# and Units of Measure&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The conciseness of the language makes it an ideal candidate for scientific DSLs where such units of measure are important, but as we can see from this example, it could even apply to the general physics of game play.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In this post, Matthew elegantly displays the beauty of Units of Measure outside of it’s standard scientific computation context.&amp;#160; If you are in the Boston area, be sure to catch him speak at our next F# user group meeting on August 3rd.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.markhneedham.com/blog/2009/07/19/f-active-patterns-for-parsing-xml/"&gt;Mark Needham’s F#: Active patterns for parsing xml&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Making use of the active pattern in the code has made it much easier to work with than passing around a sequence of tuples as I was doing previously. It has also made it easy to exit from the program early if there is a problem with the data inputted.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I find XML parsing to be one of the most consistently painful programming tasks.&amp;#160; No matter what constructs seem to be added to the .NET platform, differences between the declarative and imperative seem to become most obvious when the two paradigms collide.&amp;#160; &lt;/p&gt;  &lt;p&gt;However in this case, I found Mark’s approach to XML parsing via reactive patterns refreshing.&amp;#160; I also like his test-first approach.&amp;#160; He is one of few bloggers I have seen practicing anything close to true TDD.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.trelford.com/blog/post/Mastermind-F-WPF-Game-Sample.aspx"&gt;Phillip Trelford’s Mastermind F# WPF Game Sample&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;While playing around with the F# September CTP over the last week, I made a short, &amp;lt;300 lines, implementation of the &lt;/em&gt;&lt;a href="http://en.wikipedia.org/wiki/Mastermind_%28board_game%29"&gt;&lt;em&gt;Mastermind board game&lt;/em&gt;&lt;/a&gt;&lt;em&gt; using some Windows Presentation Foundation (WPF) controls.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Seeing game or simulation implementations in F# never ceases to amaze me.&amp;#160; In this case, what would be a moderately large project in C# is not even 300 lines of F#.&amp;#160; Phillip’s Mastermind is also interesting in that it demonstrates how seamlessly WPF integrates with F#.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://channel9.msdn.com/posts/kmcgrath/Patterns-and-Match-Expressions-in-F/"&gt;Gordon Hogenson’s Talk, Patterns and Match Expressions in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In this video, programming writer, Gordon Hogenson explains and gives examples of patterns in F# and explains the use of the match expression to control branching based on patterns in data.&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I don’t believe I have seen Gordon speak in the past and enjoyed this talk very much.&amp;#160; He does a great job at presenting pattern matching in a way which is very accessible to the every day C# programmer.&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/07/19/discoveries-this-week-07-19-2009.aspx&amp;amp;;subject=Discoveries+This+Week+07%2f19%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/07/19/discoveries-this-week-07-19-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/07/19/discoveries-this-week-07-19-2009.aspx&amp;amp;;title=Discoveries+This+Week+07%2f19%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/07/19/discoveries-this-week-07-19-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/07/19/discoveries-this-week-07-19-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/07/19/discoveries-this-week-07-19-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/07/19/discoveries-this-week-07-19-2009.aspx&amp;amp;title=Discoveries+This+Week+07%2f19%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/07/19/discoveries-this-week-07-19-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/07/19/discoveries-this-week-07-19-2009.aspx&amp;amp;;title=Discoveries+This+Week+07%2f19%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/07/19/discoveries-this-week-07-19-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/07/19/discoveries-this-week-07-19-2009.aspx&amp;amp;;title=Discoveries+This+Week+07%2f19%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/07/19/discoveries-this-week-07-19-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=18877" 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/.NET/default.aspx">.NET</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/unit+testing/default.aspx">unit testing</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/units/default.aspx">units</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/dsl/default.aspx">dsl</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/pattern+matching/default.aspx">pattern matching</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/xml/default.aspx">xml</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/DSLs/default.aspx">DSLs</category></item></channel></rss>