Le F♯, c'est quoi ?
Points clés
Famille des langages Microsoft - Plateforme .NET
Son concepteur : Don Syme @ Microsoft Research
≃ Implémentation de OCaml pour .NET
≃ Inspirée par Haskell (Version 1.0 en 1990)
dotnet new -lang F#
Inter-opérabilité entre projets/assemblies C♯ et F♯
Langage multi-paradigme Functional-first et très concis
Là où C♯ est imperative/object-oriented-first et plutôt verbeux (même s’il s'inspire de F♯ pour être + succinct)
Historique
2002
C♯ 1.0
.NET Framework 1.0
VS .NET 2002
2005
F♯ 1.x
.NET Framework 1.0
VS 2005 ?
2010
C♯ 4.0
F♯ 2.0
.NET Framework 4
VS 2010
2015
C♯ 6.0
F♯ 4.0
.NET Framework 4.6, .NET Core 1.x
VS 2015
2018
C♯ 7.3
F♯ 4.5
.NET Framework 4.8, .NET Core 2.x
VS 2017
2019
C♯ 8.0
F♯ 4.7
.NET Core 3.x
VS 2019
2020
C♯ 9.0
F♯ 5.0
.NET 5.0
VS 2019
2021
C♯ 10.0
F♯ 6.0
.NET 6.0 (LTS)
...
...
...
...
2024
C♯ 13.0
F♯ 9.0
.NET 9.0
Éditeurs / IDE
Visual Studio / Rider → ☝ Moins de refacto que pour C♯
Setup du poste
Installation du SDK .NET (5.0 ou 6.0)
Installation de VScode
Ajout de l'extension Ionide-fsharp
F♯ interactive (FSI)
REPL disponible dans VS, Rider, vscode +
dotnet fsi
Usage : vérifier en live un bout de code
💡 Terminer expression par
;;
pour l'évaluer
Existe depuis le départ (cf. aspect scripting du F#)
C♯ interactive + récent (VS 2015 Update 1)
Types de fichier
4 types de fichier : .fs
, .fsi
, .fsx
, .fsproj
Mono langage : purement pour/en F♯
Standalone vs Projet
Fichier standalone
Fichier de script
.fsx
Exécutable (d'où le x) dans la console FSI
Indépendant mais peut référencer autre fichier, DLL, package NuGet.
Fichiers de projet
En C♯ :
.sln
contient.csproj
qui contient.cs
En F♯ :
.sln
contient.fsproj
qui contient.fs
et.fsi
Fichier projet
.fsproj
Fichier de code
.fs
Fichier de signature
.fsi
(i comme interface)Associé à un fichier
.fs
de même nomRenforcer encapsulation (idem
.h
en C)Séparer longue documentation (xml-doc)
💡 Interop C♯ - F♯ = Il est facile de faire cohabiter et inter-référencer des projets.csproj
et .fsproj
dans une .sln
Projet F♯
Création dans un IDE ou avec la CLI dotnet
:
dotnet new -l
: lister les types de projet supportésdotnet new console --language F# -o MyFSharpApp
Création d'un projet console nommé
MyFSharpApp
--language F#
à spécifier ; sinon C#
dotnet build
: builder le projetdotnet run
: builder le projet et lancer l'exécutable résultant
Dernière mise à jour
Cet article vous a-t-il été utile ?