Reason #714 that I’m loving F#: Discriminated Unions

The more experience I gain with F#, the more I like it. So, when contemplating how I might convince someone to give it a try, I briefly contemplated which feature of the language might be most compelling, and quickly decided on Discriminated Unions. I’ll try to explain the value of Discriminated Unions by walking you…

Favorite Software Development Quotes

I will continually add to this post as I encounter more favorite quotes. I will do my best to properly attribute them as well. “First, solve the problem. Then, write the code. ” - John Johnson “Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ” - Martin Fowler “Good…

The Non-Polymorphic Null Object Anti-Pattern

I’ve noticed a common (anti) pattern that a couple of unrelated teams I’ve worked with have settled into, which I will explain in detail. A common pattern to prevent null reference checks littering one’s code is the Null Object Pattern. The Null Object Pattern is an abstraction created to stand in for some concrete object…

sprintf and printf and printfn, Oh My!

Compile-time string interpolation is one of the many language benefits of F# that has made the language quite a joy for me to work in so far. However I have found it difficult to get all of the various *print* (read: “star print star”) methods straight in my head, and I could never find any…