.NET Documentation

Explore the Power of F#

Getting Started with F#

Welcome to F#, a functional-first programming language that runs on .NET. F# is designed to be concise, robust, and performant, making it an excellent choice for a wide range of applications, from web development and data science to machine learning and scientific computing.

Why Choose F#?

  • Concise and Expressive: Write less code with powerful type inference and functional constructs.
  • Robustness: Benefit from immutability by default and strong typing to catch errors early.
  • Performance: Leverages the high-performance .NET runtime.
  • Interoperability: Seamlessly integrates with C# and the entire .NET ecosystem.
  • Domain Modeling: Excellent for modeling complex business domains with its rich type system.

1. Install .NET SDK

You'll need the .NET SDK to develop F# applications. Download the latest version from the official .NET website.

Verify your installation by opening a terminal or command prompt and running:

dotnet --version

2. Create Your First F# Project

Use the .NET CLI to create a new F# console application:

dotnet new console -lang F# -o MyFSharpApp

Navigate into your new project directory:

cd MyFSharpApp

3. Write Some F# Code

Open the Program.fs file in your favorite editor. You'll find starter code like this:

// Program.fs
                
                let greet name =
                    printfn "Hello, %s!" name
                
                greet "World"
                
                // To keep the console window open until a key is pressed (optional)
                System.Console.ReadKey() |> ignore
                

4. Run Your Application

Execute your F# application from the terminal in your project directory:

dotnet run

You should see the output:

Hello, World!

Next Steps

Now that you have a basic F# project running, you can explore more advanced topics:

  • Learn F# Fundamentals: Dive deeper into types, functions, pattern matching, and immutability. Refer to the F# Language Reference.
  • Asynchronous Programming: Understand how to write efficient asynchronous workflows.
  • Data Manipulation: Explore F#'s powerful libraries for data analysis, such as FSharp.Data.
  • Web Development: Build web applications using frameworks like Fable for frontend or SAFE Stack for full-stack development.
  • Tooling: Discover the excellent support for F# in Visual Studio, VS Code, and Rider.