F# Training
Formation F#
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
Powered by GitBook
On this page
  • Auteur
  • Pourquoi F♯
  • Convention
  • Public cible
  • Installation
  • SDK .NET
  • Visual Studio Code
  • Linux
  • Changelog
  • 2025-04-02
  • 2024-01-24
  • 2022-11-10

Was this helpful?

Edit on GitHub

Intro

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

NextLe F♯, c'est quoi ?

Last updated 1 month ago

Was this helpful?

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 /rdeneau

  • Linked-in romain-deneau

  • Twitter/X @DeneauRomain

Pourquoi F♯

En un tweet :

  • 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#

  • Pour les dĂ©veloppeurs non .NET, en voici une courte introduction.

Installation

SDK .NET

Kit de développement logiciel :

  • Contient : CLI dotnet, librairies et runtime .NET

  • Gratuit et multiplateforme

Procédure :

  • TĂ©lĂ©charger et installer le SDK .NET 5.0 : https://dotnet.microsoft.com/download/dotnet/5.0

  • 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

  • TĂ©lĂ©charger et installer vscode : https://code.visualstudio.com/#alt-downloads

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

  • Installer l'extension Ionide-fsharp pour faire de vscode un IDE complet pour F#

Linux

🔗 Compléments pour développer du F# sur 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

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 FS-1083 (), FS-1123 (), FS-1126 ()

F# Training
Import : shadowing
Lazy active pattern
Option vs Nullable
Annotation d'un module
Dictionnaires
SRTP
Module Result
Active pattern partiel
Casse des Tags
Méthode vs Fonction