Études-Mathématique/Notation paire ou uple ?
Contents
Question
Pour l'instant on a une notation pour les paires ($P[]). Si on veut utiliser un triplet ou plus, passe-t-on par les listes, une paire contenant une paire, une nouvelle notation triplet ?
Étude
Avantage du uple sur la liste ?
La structure en uple est un peu plus simple car il n'y a pas de Maybe. Le uple est une structure plus simple de la liste où la longueur n'est pas gérée.
Le uple généralise la paire sans désavantage ?
Oui, il n'y a pas de désavantage à passer au uple.
La notation
On ne commence la notation qu'à un élément. La notation à un élément ne sert à rien mais c'est plus pratique à programmer.
- $T(x) ==> x
- $T(x,y) ==> pair x y
- si n>2 : $T(x1,...,xn) ==> pair x $T(x2,...,xn )
- $F $T(a1)-> f ==> $F v -> ($F a1 -> f,v)
- $F $T(a1,a2)-> f ==> $F v -> ($F a1,a2 -> f, $pairFirst v,$pairSecond v)
- $F $T(a1,a2,a3)-> f ==> $F v -> ($F a1,a2,a3 -> f, $pairFirst v,$pairFirst . $pairSecond v, $pairSecond . $pairSecond v)
- $F $T(a1,a2,a3,a4)-> f ==> $F v -> ($F a1,a2,a3,a4 -> f, $pairFirst v,$pairFirst . $pairSecond v, $pairFirst . $pairSecond . $pairSecond v, $pairSecond . $pairSecond . $pairSecond v)
- $F $T(a1,a2,a3,a4,a5)-> f ==> $F v -> ($F a1,a2,a3,a4,a5 -> f, $pairFirst v,$pairFirst . $pairSecond v, $pairFirst . $pairSecond . $pairSecond v, $pairFirst . $pairSecond . $pairSecond . $pairSecond v, $pairSecond . $pairSecond . $pairSecond . $pairSecond v)
Réponse
On pourrait se passer des uples et des paires avec les listes, mais les uples sont plus rapides. Il n'y a pas d'inconvénient de passer de la paire au uple. Donc on passe au uple.