Je suis en train de comprendre les modèles actifs, donc je suis jouer avec FizzBuzz:FizzBuzz avec des motifs actifs
let (|Fizz|_|) i = if i % 3 = 0 then Some Fizz else None
let (|Buzz|_|) i = if i % 5 = 0 then Some Buzz else None
let (|FizzBuzz|_|) i = if i % 5 = 0 && i % 3 = 0 then Some FizzBuzz else None
let findMatch = function
| Some Fizz -> "Fizz"
| Some Buzz -> "Buzz"
| Some FizzBuzz -> "FizzBuzz"
| _ -> ""
let fizzBuzz = seq {for i in 0 .. 100 -> Some i}
|> Seq.map (fun i -> i, findMatch i)
Est-ce essentiellement la bonne approche, ou est-il une meilleure façon d'utiliser des motifs actifs ici ? Ne devrais-je pas être en mesure de faire findMatch
prendre un int au lieu de l'option int?
+1 pour le motif actif complet (bat-moi dessus) –