Je suis intrigué par la façon dont la correspondance de modèle fonctionne en F # pour let
. J'utilise la fenêtre interactive de F Studio, F # version 1.9.7.8. Disons que nous définissons un type simple:F # motif correspondant
type Point = Point of int * int ;;
et essayer de faire correspondre modèle par rapport aux valeurs de Point
en utilisant let
.
let Point(x, y) = Point(1, 2) in x ;;
échoue avec error FS0039: The value or constructor 'x' is not defined
. Comment est-on censé utiliser la correspondance de modèle avec let
?
La chose la plus curieuse est que:
let Point(x, y) as z = Point(1, 2) in x ;;
retourne 1 comme prévu. Pourquoi?