As momentum builds for the F# release with Visual Studio 2010, so too does the number of people blogging about the language.  This week we have a spec update, clarified comparisons, decision trees, porting gotchas and in depth explorations of the debug IL generated by F#.  Please do enjoy.

 

Speaking on F# at the Connecticut .NET Developer’s Group

Tomorrow (Tuesday November 10th, 2009) I’ll be speaking on F# at the Connecticut .NET Developer’s group.  For more information check out the ClickToAttend event.

 

From Don Syme’s Blog - F# Spec Updated for the 1.9.7 Release

Many thanks to all those who sent so much helpful feedback on the specification during Beta1. And for those using 1.9.7 already, thanks for your patience in the last couple of weeks - it took us a little longer to get this out the door than we had planned, since a development deadline for Visual Studio 2010 intervened.

 

Don Syme’s Equality and Comparison Constraints in F#

F# 1.9.7 introduces two new constraints to the F# language to help uncover issues in your code when using equality and comparison operators. In this blog entry we'll take a look at these constraints in a bit more detail.

The F# team has inherited quite a mess in terms of the lack of any kind of concrete definition of equality in the .NET framework.  It seems that they’ve been able to do much with it though.

 

Chris Smith’s Decision Trees Part 1 and Part 2

Now that we got all that painful math out of the way, let’s write some code! Here is an implementation of the algorithm in F#.

I’m just dying to see this extended to Bayesian network.  Perhaps I’ll try and extend it myself.

 

Bart De Smet’s Stack-Friendly Recursion

Recursion is a widely known technique to decompose a problem in smaller “instances” of the same problem. For example, performing tree operations (e.g. in the context of data structures, user interfaces, hierarchical stores, XML, etc) can be expressed in terms of a navigation strategy over the tree where one performs the same operation to subtrees.

A detailed look at tail recursion optimization in F# and how to achieve something similar in C#.

 

On StackOverflow, is a program F# any more efficient (execution-wise) than C#?

I'm guessing that it is not because they both boil down to the same IL.

It turns out that F# is in fact much faster in some cases.  For more on F# performance see this roundup post.

 

Steve Gilham’s F# under the covers parts 1, 2, 3, 4, 5, 6, and 8

I'm in the tidying up stages for the little project I've been working on lately, a set of FxCop rules, mainly aimed at providing some complementary features for nCover-style code coverage, including static analysis for trivial methods -- or compiler generated ones.

In this series Steve takes a very careful approach to exploring the IL generated by the F# compiler in debug mode.

 

Matt Moloney’s Lessons Learned in Porting [from] C# to F# (WPF)

I encountered a ton of difficulties while porting code from C# to F#. Fortunately / unfortunately, so have many other people. Thankfully they took the time to write about these problems so my solutions were often only a quick search away. Here is a collection of some of the finds that were able to help me in my endeavors.

An excellent post well worth reading for anyone getting ready to port to F#.