Files
saselang-bible/chapters/011-tuples.md
2026-09-13 10:20:16 +02:00

1.3 KiB

11. Tuples

11.1 Nature — V1 REQUIS — FIGÉ

Un tuple est un type structurel anonyme, hétérogène, d'arité fixe.

Il n'a pas de .saseltype.

(int32, String)

(T) est un groupement, pas un tuple à un élément.

Il n'existe pas de tuple () ; Void exprime l'absence de valeur.

Arity minimale : 2.

11.2 Champs — V1 REQUIS — FIGÉ

Les tuples ne possèdent pas de noms de membres persistants.

Si des champs nommés stables sont nécessaires, utiliser une struct.

La déstructuration peut nommer des variables locales :

(int32 id, String name) = value;

Ces noms ne changent pas le type du tuple.

11.3 Indexation — V1 REQUIS — FIGÉ

Accès positionnel :

tuple[0]
tuple[1]

L'index doit être une constante connue à la compilation puisque le type de retour peut varier suivant la position.

Le tuple n'implémente donc pas un OpIndex<uint64,T> homogène ordinaire.

11.4 Égalité/comparaison intrinsèque — V1 REQUIS — FIGÉ

Si tous les éléments permettent l'égalité pertinente, le tuple peut être comparé composant par composant.

Si tous les éléments sont comparables, l'ordre du tuple est lexicographique.

Si un composant comparé retourne PartialOrdering::Unordered, le résultat de comparaison du tuple est PartialOrdering::Unordered.