I’ve given quite a few talks over the last couple of months and at each and every one I promised to post my content shortly afterwards here on my blog.

However, due to some extreme laziness early on coupled with a crazy schedule and some unfortunate (but thankfully temporary) health problems more recently, I’ve failed to live up to those promises. Sorry guys, here’s the slides and code I promised. Better late than never, right?

**How you can get started with F# today**

I gave this talk at the local .NET meeting the monday night of the MVP Summit. It’s a short (15 minutes) one-two punch of why you might care about F# and where you can find out more. Very well received.

**Getting the MVVM Kicked Out of Your F#’n Monads**

This presentation is from the most recent NYC Code Camp. The title started out as a joke with Steve Bohlen, mentioning on twitter that all the submitted talks had to do with MVVM. I wasn’t really going to do it, but when he said he’d automatically accept something with such a title, I decided to use it as a chance to explain computation expressions to a room full of people new to F#. It actually went really well considering, the post-talk reviews were fantastic.

My MVP2MVP talk from the MVP summit’s very first F# track. It’s a meta-talk about how to give a good F# talk, and how to build a stronger F# community.

Enjoy this post? Continue the conversation with me on twitter.

Tags: Code Camp, Computation Expressions, F#, F# Community, MVP Summit 2011, MVP2MVP, Redmond .NET User Group

Hi,

Weighted Quick-Union with Path Compression on F# Snippets has an error. The “sz” array is always filled with zerros.

Maybe this version is correctly?

member t.unite(p, q) =

let i = root(p)

let j = root(q)

if sz.[i] < sz.[j] then

id.[i] <- j; sz.[j] sz.[j] then

id.[j] <- i; sz.[i] <- sz.[i] + sz.[j]

else

id.[i] <- j; sz.[j] <- sz.[j] + 1

Ahh, I’ll give it a test when I get home. I ran out of time yesterday and just threw it up there without testing. Thanks!

Figured it out. It turns out I was accidentally filling the sz array with 0 instead of 1. (every node is rooted in itself).

Ok.

What about t.unite(1, 1) ? Is that not allowed?

Hrm, can you find an example where that doesn’t work? It seems to work fine for me.

You have right, it’s work fine.

[…] also had the pleasure of speaking at a quite a few interesting events this year. One I haven’t yet written about is Monospace 2011. Click For […]