Formation F#
  • Intro
  • Bases
    • Le F♯, c'est quoi ?
    • Syntaxe
    • Premiers concepts
    • 🍔 Quiz
  • Fonctions
    • Signature
    • Fonctions
    • Fonctions standard
    • Opérateurs
    • Fonctions : compléments
    • 🍔 Quiz
    • 📜 Récap’
  • Types composites
    • Généralités
    • Tuples
    • Records
    • Unions
    • Enums
    • Records anonymes
    • Types valeur
    • 🍔 Quiz
  • Types : Compléments
    • Type unit
    • Génériques
    • Types flexibles
    • Unités de mesure
    • Conversion
    • Exceptions F#
  • Pattern matching
    • Patterns
    • Match expression
    • 🚀 Active Patterns
    • 📜 Récap’
  • Collections
    • Vue d'ensemble
    • Types
    • Fonctions génériques
    • Fonctions spécifiques
    • 🍔 Quiz
    • 📜 Récap’
  • Programmation asynchrone
    • Workflow asynchrone
    • Interop avec la TPL .NET
    • 📜 Récap’
  • Types monadiques
    • Type Option
    • Type Result
    • Smart constructor
    • 🚀 Computation expression (CE)
    • 🚀 CE - Fondements théoriques
    • 📜 Récap’
  • Module & namespace
    • Vue d'ensemble
    • Namespace
    • Module
    • 🍔 Quiz
    • 📜 Récap’
  • Orienté-objet
    • Introduction
    • Membres
    • Extensions de type
    • Classe, structure
    • Interface
    • Expression objet
    • Recommandations
  • 🦚 Aller plus loin
Propulsé par GitBook
Sur cette page
  • Auteur
  • Pourquoi F♯
  • Convention
  • Public cible
  • Installation
  • SDK .NET
  • Visual Studio Code
  • Linux
  • Changelog
  • 2025-04-02
  • 2024-01-24
  • 2022-11-10

Cet article vous a-t-il été utile ?

Modifier sur GitHub

Intro

Formation F# 5-9, en français 🇫🇷 🔵⚪🔴

SuivantLe F♯, c'est quoi ?

Dernière mise à jour il y a 18 jours

Cet article vous a-t-il été utile ?

Ce support existe aussi en anglais : . → C'est là que vous trouverez les dernières mises-à-jour.

Auteur

Romain DENEAU

  • Senior Developer F♯ C♯ TypeScript

  • Github

  • Linked-in

  • Twitter/X

Pourquoi F♯

:

  • Succinct

  • Robuste

  • Performant

En détail :

  • Langage multi-paradigme avec une forte orientation fonctionnelle

    • Principes fonctionnels : immutabilité et composition

    • Briques : fonctions et types algébriques

  • "Fun" ! Très agréable à écrire et à lire

    • Expressif et concis (syntaxe peu verbeuse)

    • Sensible à l'indentation → facilite la lecture

    • Typage statique fort mais quasi-transparent grâce à l'inférence de type

  • Langage entreprise friendly

    • Tourne sur la plateforme .NET → performant, Interop aisée avec projets C#

    • Très bon tooling : VS, VsCode, Rider

    • Code robuste : résultats prédictibles et reproductibles (immuabilité, égalité structurelle, absence de null, vérification exhaustive des cas dans pattern matching)

    • Communauté solide, nombreuses librairies F# friendly

    • Programmation interactive : vérifier un code en l'évaluant dans la console FSI

  • F# par rapport aux autres langages fonctionnels "Back-end"

    • Sa syntaxe n'est pas hybride contrairement à Scala et Kotlin (mixe OOP/FP)

    • Plus facile à apprendre que Haskell ou OCaml (mais qui ont plus de fonctionnalités FP)

    • Typage statique contrairement à Closure (et beaucoup beaucoup moins de parenthèses)

Convention

📍 → notion abordée plus tard, généralement avec le lien associé

💥 → erreur de compilation ou une exception au runtime

🚀 → chapitre d'un niveau + avancé

🍔 ou 🎲 → Quiz

📜 → Récap’

Public cible

  • Développeur C#

Installation

SDK .NET

Kit de développement logiciel :

  • Contient : CLI dotnet, librairies et runtime .NET

  • Gratuit et multiplateforme

Procédure :

  • Vérifier l'installation en ouvrant un terminal et en entrant la commande dotnet --versionqui renverra par exemple 5.0.302.

Visual Studio Code

Éditeur de texte gratuit, open source et multiplateforme

  • Vérifier l'installation en ouvrant un terminal et en entrant la commande code .qui doit ouvrir vscode et parcourir le répertoire courant.

Linux

Changelog

2025-04-02

  • F# 8.0 et F# 9.0

2024-01-24

  • Mention de ResizeArray (cf. Vue d'ensemble)

2022-11-10

Pour les développeurs non .NET, en voici une .

Télécharger et installer le SDK .NET 5.0 :

Télécharger et installer vscode :

Installer l'extension pour faire de vscode un IDE complet pour F#

🔗

Mention de

Astuce pour instancier un Nullable (cf. )

Mention de readOnlyDict et KeyValue (cf. )

Mention du mot clé global pour les imports (cf. )

Précisions sur les attributs AutoOpen et RequireQualifiedAccess (cf. )

Précisions et exemples pour choisir entre méthodes et fonctions (cf. )

Précisions sur le gain en lisibilité quand on utilise des actives patterns (cf. )

F♯ 7.0 : RFC (),(), ()

courte introduction
https://dotnet.microsoft.com/download/dotnet/5.0
https://code.visualstudio.com/#alt-downloads
Ionide-fsharp
Compléments pour développer du F# sur Linux
/rdeneau
romain-deneau
@DeneauRomain
En un tweet
FS-1083
FS-1123
FS-1126
F# Training
Import : shadowing
Annotation d'un module
Option vs Nullable
Lazy active pattern
Dictionnaires
SRTP
Module Result
Active pattern partiel
Méthode vs Fonction
Casse des Tags