For the uninitiated, F# is a general-purpose programming language found in .NET. Contrary to C# who promotes objects as its first-class citizen (can receive and output objects in methods), F# promotes functions at its first citizens. This means that the preferred way of doing this will be through functional programming, but it doesn’t meet that introducing object programming is considered a bad thing in the language. It’ll depend on the context of usage.
To get to know more about the language, here’s a list of references you can follow in any order, depending on how comfortable you feel with the language! Please keep in mind that F# is a .NET language so what you know in the .NET space coming from C#/VB.NET is still applicable.
Reminder: This is a live list. If you find good resources for F# development, don’t hesitate to update this page!
YouTube tutorials (Beginner friendly)
- F# for C# programmers with Scott Wlaschin – [link]
In this talk, we’ll look at the basics of coding in F#, and how functional programming differs from object-oriented programming. Along the way, there will be many examples showing the same code written in C# and F# so that you can see for yourself how the two languages differ in style and approach.
- Functional design patterns with Scott Wlaschin – [link]
The functional programming community has design patterns and principles as well. This talk provides an overview of some common FP patterns, from the basics of partial application and currying all the way to monads and monoids.
- Functional architecture – The pits of success with Mark Seeman (Not F# centric) [link]
In this session, you’ll learn about a handful of such ‘best practices’, and how functional programming automatically lead you there, without your explicit effort.
- Functional programming with F# series – [link]
- It will introduce you to the basics of the language, algebraic data structures (Discriminated unions and records). the Actor model with the Mailbox processor (Concurrency-based) & how to parse text with a Combinator
- Why you should use F#: Build 2018 – An introductory presentation of F# at the Microsoft Build event in 2018 [link]
F# is a functional programming language that runs on .NET. It is a perfect fit for developing backend services on .NET Core, modeling complex domains, and dealing with difficult data access problems. In fact, it powers the backends of some of our top customers in Azure!
Books (Beginner friendly)
- F# for C# Developers by Tao Liu
- A bit old, but a good entry for learning more about the language. It focuses on F# 3.0 and at the time of writing, we’re currently at version 4.6.
- F# Deep Dives by Tomas Petricek and Phillip Trelford
- “presents a collection of real-world F# techniques, each written by expert practitioners. Each chapter presents a new use case where you’ll read how the author used F# to solve a complex problem more effectively than would have been possible using a traditional approach.”
- Domain Modeling Made Functional by Scott Wlaschin
- In this pragmatic, down-to-earth guide, you’ll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely—often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality.
- Best blog for F# development to this date is: https://fsharpforfunandprofit.com/