projprog/HSK24.md
2022-01-08 04:21:26 +01:00

983 B

Haskell 24

Exercice 1

  1. Cette expression crée le type Vector t et appele print sur une instance de ce type. Sauf que Haskell râle car le type susnommé n'a pas la classe Show.
  2. En indiquant que Vector a la classe Show, alors ..... ben elle peut être affichée.

Exercice 2

  1. Dans la première expression, Haskell ne sait pas comment comparer ou tester l'égalité des éléments de type Card car le type n'est pas de la classe Eq ni Ord. Dans le second cas, on a précisé les classes, donc Haskell est capable d'inférer les opérateurs d'égalité et de définition (se basant sur l'ordre des déclarations des constructeurs).
  2. L'expression suivante crée un type Objet avec trois constructeurs, et définit comment l'objet instantie la classe Eq.
  • Pour définir Eq, il faut définir ==
  • Pour définir Ord, il faut définir compare de type `a -> a -> Ordering
  • Pour définir Show, il faut définir show de type a -> String.