// 'name' is inferred to be a string based on usage.
let printMessage name =
    printfn "Hello there, %s!\n" name

// 'names' is inferred to be a sequence of strings.
let printNames names =
    |> Seq.iter printMessage

let names = [ "Ana"; "Felipe"; "Emillia" ]
printNames names


F# is a functional-first language with features and idioms for both functional and object-oriented programming. It has been designed for functional programming on .NET while also offering clean interop with C# and existing codebases.

Professional tooling, everywhere

High quality editors for Windows, Linux, and macOS all run on a single F# compiler, providing consistent high quality features.

Learn about tools for F#

Microsoft + Community

F# is an open source language and Microsoft is a leading contributor. The independent F# Software Foundation provides a central place for the F# community to grow and learn together.

F# Software Foundation website

Runs on .NET

F# is part of the .NET developer platform. Use your skills, code, and favorite libraries to build all types of apps.

Learn about the .NET platform

Ready to Get Started?

Our step-by-step tutorial will help you get F# running on your computer.

Supported on Windows, Linux, and macOS

Get Started