est ce que ça a un sens dans un langage typé statiquement ? Car c'est une donnée dont le format réel va changé au cours du temps.
Cela correspond au type Integer
du Haskell, qui est utilisé sans difficulté et de manière totalement transparente par l’utilisateur final. C’est en sous-main que la taille réelle change, mais pour l’utilisateur, le type n’a pas de taille.
Cela se traduit par le fait que ce type est une instance de Bits, la classe de type qui permet d’utiliser les opérations bit à bit, mais pas de FiniteBits, qui nécessite que le type soit borné.
est ce que si on le conserve, on peut utiliser le pattern matching pour en déduire le type sous-jacent ?
Je ne comprends pas trop la question. Sur les types natifs, le filtrage par motifs ne peut être utilisé qu’avec des valeurs, car ils n’ont pas de constructeur.
enfin j'ai peur que ce soit un peu tricky pour un langage censé être d'apprentissage. En Python pas de soucis mais dans un langage comme le C++ ça va demander de vérifier l'overflow à chaque opération pour potentiellement agrandir le type sous-jacent.
C’était un peu une de mes réticences, mais il existe des bibliothèques qui font ça très bien, comme GMP, qui est portée dans des tas de langages. Par exemple, le type Integer
de Haskell sus-mentionné s’appuie en sous-main sur GMP.