Études-Mathématique/Notation paire ou uple ?

From Lazi wiki
Jump to: navigation, search

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.