Équivalence de tuple singleton
Pour éviter toute ambiguïté entre les tuples et les parenthèses regroupant les sous-expressions, un tuple avec un seul élément est considéré comme équivalent à l’élément contenu, y compris son type. Par exemple, les types Int
, (Int)
et ((Int))
sont traités comme étant identiques. Il en va de même pour les valeurs 5
, (5)
et (((5)))
, ou pour (5, (6))
et (5, 6)
. Cette équivalence s’applique à tous les usages, y compris l’affectation. Étant donné qu’il n’existe pas de distribution ou de réflexion dynamique dans Q# et que tous les types dans Q# peuvent être résolus au moment de la compilation, l’équivalence de tuple singleton peut être facilement implémentée lors de la compilation.