989 B
989 B
Haskell 22
Exercice 1
- Cette expression crée un type appelé
Vectorqui peut être instancié avec un seul constructeur:Vec3qui prend en paramètre trois flottants.
magnitude :: Vector -> Float
magnitude (Vec3 a b c) = sqrt (a*a+b*b+c*c)^
Exercice 2
- Cette expression crée un type polymorphique de vecteur à trois coordonées, qui peuvent être de n'importe quel type.
- L'expression donnée est donc du type
Vector [Char]. - Là où cette autre expression est du type
Vector Int(ou plutôtNum t => Vector t) - Celle ci est du type Vector Float (on a forcé le type d'un élément, donc de t, donc du vecteur).
data Liste t = Liste Integer [t]initListe = Liste 0 []
ajouteListe::Liste t -> t -> Liste t
ajouteListe (Liste n s) x = Liste (n+1) (x:s)
- Cette liste permet d'implémenter la fonction
lengthen temps constant, au prix d'un coût à peine plus élevé lors du l'ajout et un petit peu plus de mémoire.