F# is a strongly typed language that inherit from the object oriented language (C#) but encourage a functional programmation. It runs on the .NET CLR, and can seamlessly inter-operate with C#. It is compatible with visual studio and is officialy supported by Microsoft.


Variables in F# are by default immutable. That means that their values can't be changed after initialization. Mutability can be forced by the keyword "mut". One of the F# best practices is to just make a copy of the variable you want and change the values you need at the initialization of the newly created variable.


F# can use objects, but it is encouraged to use Records instead. Records are a set of members, and can be seens as structs for people that comes from a C background.

For example:

type People = {
  Age: int 
  FirstName: string 
  LastName: string  

Additional Resources

Contributing to the Guide

This open source guide is curated by thousands of contributors. You can help by researching, writing and updating these articles. It is an easy and fun way to get started with contributing to open source.