Error Handling in F# with Option Types — A Practical Example

As I continue to study functional programming with F#, I’ve been learning to handle things (such as thinking about state) in a different way than I would in an object oriented programming language. In keeping with my recent learning F# article series, I’ve decided to discuss another element of the learning process which had caused me some confusion over the past few days - namely error handling in F#. [Read More]
Tags: f# guides

On Transitioning from C# to F# — Rethinking State

In programming (or life for that matter!) shifting paradigms can be hard, requiring you to adopt a whole new mindset and way of doing things. Since I’ve only ever really worked with object oriented programming languages, starting to learn F# and its functional programming ways has been quite a shift. [Read More]
Tags: f# guides

Writing an iRacing SDK Implementation in F# (Part One)

In my previous post, I discussed how I’ve decided to learn F# in 2021 for a number of reasons. Around the same time, I also happened to setup my Sim Racing rig so that I could continue to play iRacing with my VR headset (HTC Vive). Its been several years since I’ve last played, but with COVID-related curfews being implemented here in Montreal tomorrow, I’ve been increasingly taking up home-based... [Read More]

Why I'm Learning F# in 2021

For the past while, I’ve had the goal of learning a functional programming language in the back of my mind but never acted on it for various reasons. However, during a recent weekend afternoon of winter COVID-lockdown web browsing, I stumbled across the terrific F# for fun and profit which piqued my interest and convinced me to take the plunge and learn FP in 2021. I believe that learning different... [Read More]

Developing a Lightweight TUI Music Player in C# using Terminal.Gui (Part Four)

In Part Three of this guide, we implemented Dependency Injection (DI) through the use of constructor injection and expanded our player interface by adding volume controls. With all these features in place, the final part of this guide will add some more key features including loading playlist. At the end of this tutorial, our player should look something like this: [Read More]