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
  • Pattern matching
  • Patterns
  • Active Patterns
  • ComplĂ©ments
  • Exercices

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

Modifier sur GitHub
  1. Pattern matching

📜 Récap’

Pattern matching

  • Brique fondamentale de F♯

  • Combine "comparaison de structure de donnĂ©es" et "dĂ©construction"

  • S'utilisent presque partout :

    • match expression et bloc function

    • bloc try/with

    • let binding, y.c. paramètre de fonction

  • Peut s'abstraire en fonction fold associĂ©e Ă  un type union

Patterns

Pattern
Exemple

Constant - Identifier - Wilcard

1, Color.Red - Some 1 - _

Collection : Cons - List - Array

head :: tail - [1; 2]

Product type : Record - Tuple

{ A = a } - a, b

Type Test

:? Subtype

Logique : OR, AND

1 | 2, P1 & P2

Variables - Alias

head :: _ - (0, 0) as origin

+ Les guards when dans les match expressions

Active Patterns

  • Extension du pattern matching

  • BasĂ©s sur fonction + metadata → Citoyens de 1ère classe

  • 4 types : total simple/multiple, partiel (simple), paramĂ©trĂ©

  • Un peu tricky Ă  comprendre mais on s'habitue vite

  • S'utilisent pour :

    • Ajouter de la sĂ©mantique sans recourir aux types union

    • Simplifier / factoriser des guards

    • Wrapper des mĂ©thodes de la BCL

    • Extraire un ensemble de donnĂ©es d'un objet

    • ...

Compléments

Exercices

  • Collatz Conjecture (easy)

  • Darts (easy)

  • Queen Attack (medium)

  • Robot Name (medium)

Précédent🚀 Active PatternsSuivantVue d'ensemble

Dernière mise à jour il y a 1 an

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

📜 , F# for fun and profit, Juin 2012

📜 , F# for fun and profit, Juin 2012

📜 (6 articles), F# for fun and profit, Août 2015

📹 -

Les exercices suivants sur (se créer un compte) peuvent se résoudre avec des active patterns :

Match expressions
Domain modelling et pattern matching : Roman numeral
Recursive types and folds
A Deep Dive into Active Patterns
Repo github
exercism.io