Functional Programming and functional style of programming has been on the spotlight for past couple of years. Even though my primary choice of language is C# (an Object Oriented Language) I keep coming over references to functional style of programming in my day-to-day work. Concepts of functional programming also comes in UI frameworks.

I have been spending some time every week to learn FSharp and have been enjoying doing it.

In this post we will look at the journey I have been taking learning FSharp and how I am going about it.

IDE’s

The first thing that you want when you start learning a Programming language is a place to try out what your are learning. I am a huge proponent of ‘Learning by doing’ and an IDE is the very first thing you need to get that going when learning a programming language. Since my primary work machines are on Windows I will be covering the IDE’s for that - however most of the below works cross-platform, so it should be good irrespective of which OS you are on.

Online REPL

The easiest to get started is when you don’t have to install anything. If all you are looking for is to just try out some F# syntax and get some famiiarity then look no further than the online REPL editor. If you are unsure of how to use it just check the examples link in the main.fs file (link it shown when it is empty). The REPL does allow you to add multiple files/folders. You can also drag and drop or upload files to the REPL.

Visual Studio

If like me you are trying out F# because it is is the same ecosystem as CSharp is and still giving you the benifits of a Functional Language, chances are that you already have Visual Studio. Visual Studio comes with F# installed (as long as you have ticked the correct checkboxes during the installation)

LinqPad
Visual Studio Code

Visual Studio Code is free and open source code editor that can be used with a variety of programming languages, including F#. VS Code was ranked the most popular developer tools in the StackOVerflow 2019 Developer Survey.

Learning Material/Books

Primarily I have been using two main sources for learning FSharp - Real-World Functional Programming with Examples in F# and C# book and the FSharpForFunAndProfit website.

Exercises/Hand’s on