F Sharp Programming/Getting Set Up
|F# : Getting Set Up|
At the time of this writing, its possible to run F# code through Visual Studio, through its interactive top-level F# Interactive (fsi), and compiling from the command line. This book will assume that users will compile code through Visual Studio or F# Interactive by default, unless specifically directed to compile from the command line.
F# is included with Visual Studio 2019. Alternatively, users can download Visual Studio Express or Community for free, which will provide an F# pioneer with everything one needs to get started, including interactive debugging, breakpoints, watches, Intellisense, and support for F# projects. Make sure all instances of Visual Studio and Visual Studio Shell are closed before continuing.
To get started, users should download and install the latest version of the .NET Framework from Microsoft.
After successful installation, users will notice an additional folder in their start menu, "Microsoft F# 2.0.X.X." Additionally, users will notice that an entry for "F# Projects" has been added to the project types menu in Visual Studio. From here, users can create and run new F# projects.
It is a good idea to add the executable location (e.g.
c:\fsharp\bin\) to the
%PATH% environment variable, so you can access the compiler and the F# interactive environment (FSI) from any location.
As of Visual Studio 2019 the easiest way to get going is to install Visual Studio 2019 for Web at  (even if you want to do desktop solution). You can then select F# language support from within the installer. Once this is done you can create F# projects. Search Nuget for additional F# project types.
Testing the InstallEdit
Hello World executableEdit
Lets create the Hello World standalone application.
Create a text file called
hello.fs containing the following code:
(* filename: hello.fs *) let _ = printf "Hello world"
The underscore is used as a variable name when you are not interested in the value. All functions in F# return a value even if the main reason for calling the function is a side effect.
Save and close the file and then compile this file:
fsc -o hello.exe hello.fs
Now you can run
hello.exe to produce the expected output.
F# Interactive EnvironmentEdit
Open a command-line console (hit the "Start" button, click on the "Run" icon and type
cmd and hit ENTER).
fsi and hit ENTER. You will see the interactive console:
Microsoft F# Interactive, (c) Microsoft Corporation, All Rights Reserved F# Version 22.214.171.124, compiling for .NET Framework Version v2.0.50727 Please send bug reports to email@example.com For help type #help;; >
We can try some basic F# variable assignment (and some basic maths).
> let x = 5;; val x : int > let y = 20;; val y : int > y + x;; val it : int = 25
Finally we quit out of the interactive environment
Adding to the PATH Environment VariableEdit
- Go to the Control Panel and choose System.
- The System Properties dialog will appear. Select the Advanced tab and click the "Environment Variables...".
- In the System Variables section, select the Path variable from the list and click the "Edit..." button.
- In the Edit System Variable text box append a semicolon (;) followed by the executable path (e.g.
- Click on the "OK" button
- Click on the "OK" button
- Click on the "Apply" button
Now any command-line console will check in this location when you type
Mac OSX, Linux and UNIXEdit
Installing interpreter and compilerEdit
The F# Software Foundation give latest instructions on getting started with F# on Linux and Mac. Once built and/or installed, you can use the "fsharpi" command to use the command-line interpreter, and "fsharpc" for the command-line compiler.
The F# Software Foundation also give instructions for installing the Monodevelop support for F#. This comes with project build system, code completion, and syntax highlighting support.
Emacs mode and other editorsEdit
Xamarin Studio for Mac OSX and WindowsEdit
F# runs on Mac OSX and Windows with the latest Xamarin Studio. This is supported by Microsoft. Xamarin Studio is an IDE for developing cross-platform phone apps, but it runs on Mac OSX and implements F# with an interactive shell.