Between Atalasoft, Professional F# 2.0 and the MVP Summit I’ve been completely swamped and ended up with quite a backlog of posts.  Between the Brian-Chris F# Code Battle, Luca’s LChart, Ashley’s continuing FScheme series and Matthew’s MongoDB stuff I’m not sure I can pick a favorite.  That’s not true, I’d go right for the DAWG-fight series.  The arcane secrets of F# optimization await inside.

 

C9 Lectures: Dr. Don Syme - Introduction to F#, 3 of 3

In Part 3 of this 3-part lecture series, Dr. Don Syme elaborates further on: Patterns, Object Basics, [and] Imperative Programming.

 

Dr. Don Syme’s Async and Parallel Design Patterns in F#: Agents

In part 3 of this series, we explore lightweight, reactive agents in F# and look at some typical design patterns associated with these agents, including isolated internal state.

 

Chris Smith’s DAWG-fight, Optimizing text search in F# II and Dr. Brian McNamara’s DAWG-Gone (F# Language Team Code Battle Summary)

So today I’ll walk you through what Chris did right (shortest… subsection… ever!), as well as what he did wrong (get comfy in your chair), and then show my own implementation. 

 

Luca Bolognese’s LChart: Displaying Charts in F# Parts One, Two and Three

I want to use F# as a exploratory data analysis language (like R). But I don’t know how to get the same nice graphic capabilities. So I decided to create them. Here is a library to draw charts in F#.

 

Dr. Brian McNamara’s An RSS Dashboard in F# Parts Four, Five and Six.

You can see from the colors in the screenshot from part one what I desired, but this requires knowing which links are ‘visited’ and which are not, so I can color each link appropriately.  It turns out, this information can be had via unusual means…

 

Ashley Feniello’s FScheme Parts Ten and Eleven

We’re now taking the first small step into the world of nondeterministic logic programming (chapter 16 of Bill Hails’ book). Hopefully you enjoyed the last post about continuation passing and found the idea to be ripe with potential power; indeed so powerful that we’re going to use it now to bifurcate the universe! No really, we are…

 

Luca Bolognese’s A simpler F# MailboxProcessor

I always forget the pattern to use to create a functioning MailboxProcessor in F#. I mean, which piece has to be async and how to structure the recursive loop. When I find myself in that kind of a situation situation, my instincts scream at me: “Wrap it and make it work how your mind expects it to work”. So here is a simplification of the paradigm.

 

Matthew Podwysocki’s The F# PowerPack Released on CodePlex

As announced yesterday, the new February 2010 release of F# is out. This release is much more of a stabilization release instead of adding a lot of features including improvements in tooling, the project system and so on.

 

Matthew Podwysocki’s Exploring MongoDB with F#

I just want a quick answer with the data I have.  There was one issue of course that nagged me which was the ubiquitous use of strings for everything from databases, collections, and keys.  With a language such as F#, could we do any better than this approach?

 

Matthew Podwysocki’s F# and the Dynamic Lookup Operator ala C#

In the F# language, we have the ability to define two “dynamic” operators, a get member operator denoted by the ( ? ), and the set member operator denoted by the ( ?<- ).  The F# language and its associated libraries do not have an actual implementation of these operators, but instead allow you to implement them as you see fit.

 

Steve Gilham’s Updating F# posts to 1.9.9.9 Parts One and Two

Possibly a few more issues will come out as I reconstitute my analysis tool, which is currently undergoing a retooling of its build system to automate some of the manual checks for whether the operational tests succeeded or not.

 

Steffen Forkmann’s FAKE – F# Make 0.29 Released

Last week I released version 0.29 of my build automation tool “FAKE – F# Make”. The new version comes along with a couple of changes which I will now describe.

 

Luis Diego Fallas’s Using a Webcam with DirectShowNET and F#

In this post I'm going to show a small F# example of using DirectShowNET to access a webcam and manipulate the image data.

 

Mark Needham’s F#: Passing an argument to a member constraint

I've written previously about function overloading in F# and my struggles working out how to do it and last week I came across the concept of inline functions and statically resolved parameters as a potential way to solve that problem.

 

Julien Ortin’s BitTorrent Bencoded values and BitTorrent Metainfo file handling in F#

Byte strings can be strings represented as byte strings (such as the description of the exchanged data), as well as an array of bytes (such as a hash). Representing them with the .Net strings can thus lead to errors. Hence we shall keep the byte array representation.

 

Julien Ortin continues his series on Purely Functional Data Structures with a Skew binomal heap, a Banker’s double-ended queue, a Alternative binary random access list, a Bootstrapped queue, and a Implicit queue.

This post describes the F# implementation of the <insert data structure here> from Chris Okasaki’s “Purely functional data structures”.

 

Scott Seely’s F# is Changing My Style

The types I’m interested are concrete (no abstract methods) and have a zero-argument constructor. A few years ago, I would have done a bunch of looping constructs to look at each element. However, I’ve been doing a lot more work with F#. While doing this experiment in C# for a project, I wound up writing the following instead:

 

Steve Gilham’s It almost feels like cheating…

Having renamed all the .c files as .cpp, getting a first building assembly was simple, and then making it refer to an initially empty F# library, no problem; and then setting up an (again, initially empty) unit test assembly depending on both (where vice-tests to match up new and old implementations, and their eventual unit test replacements can accumulate), just as normal.

 

Brad Clow’s F# Examples talk at BFG

Earlier this week I gave a short talk at the Brisbane Functional Group on F#. The idea was to give an introductory feel for the language by way of some simple examples.

 

Phillip Trelford’s F# Talk at Edge UG: Slides and Demos

I presented a 1 hour talk introducing F# with 4 demos (attached to this post):  Full-screen WPF POS Checkout sample with Barcode scanner integration (in 100 lines).  Twitter WPF client script (200 lines).  Matermind board game in WPF (300 lines).  Lunar Lander XNA game (>400 lines).

 

Matt Jackson’s AssertWasCalled in F# (or how I learned to stop worrying and hate extension methods)

Unfortunately, this upcasting led me on a short goose chase to find out which interface in the Rhino Mocks codebase was responsible for AssertWasCalled only to realise that it was an extension method sitting hiding away somewhere else.