1.7 KiB
1.7 KiB
Haskell 9
Exercice 1
- Le typage statique permet d'éviter certaines erreurs de programmation en les capturant dès la compilation (comme ajouter un entier et une chaine de caractères par exemple).
- Y a des choses non typées en Haskell ? À la limite les commandes de l'interpréteur.
:t 'a'affiche le type de l'objet'a', c'est à direChar.- L'opérateur
::signifie ici est du type Intest un entier machine, de 32 ou 64 bits typiquement.Integerest un entier mathématique théoriquement non borné.- Cette différence permet de coder des algorithmes «machine» comme les codages binaires, les opérations bit à bit, et les entiers
Integerpermettent de coder sans se soucier de dépassement de la capacité de l'entier, qui peut amener des bugs plutôt étranges. De telles considérations peuvent simplifier les preuves d'algorithme. - Haskell prévoit les types
DoubleetFloatpour représenter les réels, respectivement sur 64 et 32 bits. - Les booléens sont appelés
Bool. - Les caractères sont appelés
Char.
Exercice 2
- Un type explicite est un type donné ... explictiement à une variable, sans le déduire du contexte.
Trueest du typeBool(c'est un booléen)."stringest du type[Char](une liste de caractères)('e', False)est du type(Char, Bool)(un 2-uplet avec un caractère en premier élément et un booléen en second élément).- Les types de ces trois variables sont différents. Certes ils sont tous des tuples, mais tuple est une classe de types. Le premier est un tuple
(Char, Bool), le second un tuple([Char], Bool)et le dernier un tuple(Char, Bool, [Char]).