Les tuples ont "," et les variantes ont des arguments Ctor.ce sont des constructeurs, ils créent des choses.
Les motifs sont des destructeurs, ils les déchirent.
Ce sont des concepts doubles. Pour mettre ceci plus fortement: la notion de tuple ou de variante ne peut pas être décrite simplement par son constructeur: le destructeur est requis ou la valeur que vous avez faite est inutile. Ce sont ces deux descriptions qui définissent une valeur.
Généralement, nous considérons les constructeurs comme des données, et les destructeurs comme des flux de contrôle. Les destructeurs de variantes sont des branches alternatives (une parmi de nombreuses), les destructeurs de tuple sont des fils parallèles (tous de plusieurs).
Le parallélisme est évident dans les opérations comme
(f * g) . (h * k) = (f . h * g . k)
si vous pensez de commande circulant à travers une fonction, tuples fournissent un moyen pour diviser un calcul en fils parallèles de contrôle.
Considérées de cette façon, les expressions sont des façons de composer des tuples et des variantes pour créer des structures de données complexes (pensez à un AST).
Et les correspondances de motifs sont des façons de composer les destructeurs (encore une fois, pensez à un AST).
"expérientiel". Bon mot. :-) –