Good News and Sad News – Leaving Microsoft

The Good News You might have heard, Visual Studio 2010 is done, launched, and out the door! That’s right, after several short years F# version 1.0 is generally available! While it’s been alive and well in CTP form for many years, now you can go to the store and buy it. This doesn’t just mean…


Writing a StarCraft Bot in F#

Hi, I’m Chris Smith. You might know me as the world famous author of Programming F#, but outside of my pseudo-tech-celebrity status I’m a real person. I’m a part time movie critic, avid skier, and a gamer. My passions are deep wide and one thing that has always excited me is the notion of programs…


DAWG-fight, Optimizing text search in F# II

Some of you may have seen Dr. Brian McNamara’s post refuting my credentials as an evil genius. Lies! All lies propagated by the liberal media! Evidently, he thinks that his superior implementation of a trie, which is faster and uses much less memory, is better than mine. If being an evil genius means having smaller,…


F# CTP Update!

Hot on the heels of the Visual Studio 2010 Release Candidate comes the February, 2010 F# CTP. There haven’t been too many changes since the last release, mostly bug fixes and getting the libraries in a consistent state. You can find more information on Don’s blog.


Trie-ing to optimize text search in F#

Any evil genius knows that if you want to stay on top you need to exercise your mind. Most evil geniuses stay strong by lifting weights with their telekinetic abilities, however I prefer video games.’s Bookworm is one mental exercise I am particularly fond of. Bookworm is simple. You have  7×7 hexagonal grid of…


Being an Evil Genius with F# and .NET

A couple weeks ago I was in glorious Sandusky, Ohio presenting at CodeMash. CodeMash is a community driven conference that’s less about product announcements and typical “rah rah” and more about getting smart people together to talk about what they are passionate about – coding. Rather than doing the prototypical “Intro to F# Talk” I…


The Halting Problem and the Church-Turing Thesis

Two weeks ago at PDC Dustin “former blogger” Campbell and I sat down with Keith and Woody to record an episode of Deep Fried Bytes. The show hasn’t been posted yet, but I’m sure it will turn out great. We talked about all sorts of things, from me shamelessly promoting my book to Silverlight 4.0…


Source Code for Programming F#

I’ve gotten a few requests recently for the source code of the examples in Programming F#. I’ve attached them as a series of F# Script files. In the ZIP file you’ll find a few gems such as: A ‘state’ computation expression Examples of F# Asynchronous Workflows and the Parallel Extensions to .NET References for writing OO…


F# Language Details (Gotchas)

The ‘F’ in F# stands for fun. However, there are some details in F# that might lead to bugs, surprises, and/or un-fun. This post is to highlight a couple of random ‘gotchas’ when exploring some corners of the F# language.   Overriding Equals and Not Equals F# allows you to overload operators so you can…


Awesome F# – Decision Trees – Part II

In my previous post I went over the theory behind the ID3 algorithm. 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#. (It is also attached to this blog post, download it via the link at the bottom.) open…