# Haskell 2 ### Exercice 1 ``` GHCi, version 8.6.5: http://www.haskell.org/ghc/ :? for help Prelude> 2+5 7 Prelude> 5/2 2.5 Prelude> 2^4 16 Prelude> -3 -3 Prelude> 2 + -3 :5:1: error: Precedence parsing error cannot mix ‘+’ [infixl 6] and prefix `-' [infixl 6] in the same infix expression Prelude> 2 + (-3) -1 Prelude> 2-3 -1 Prelude> ``` Haskell ne comprend pas `2 + - 3` car `-` et `+` ont la même précédence, et que dans ce cas, les instructions sont lues de gauche à droite, et lorsque le compilateur trouve `-` comme second terme de l'additon, il se plaint que ce n'est pas un nombre. ### Exercice 2 1. Non, le parenthesage impose au calcul `2+4` de se faire avant, contredisant la précédence plus élevée du `*`. 2. Il y a 10 niveaux, de 1 à 9. 3. Le niveau de précédence est indiqué à la toute fin après `infixl`. 4. Pas le même résultat, l'opérateur `^` est infixe *à droite* contrairement à plus et moins qui sont infixes *à gauche*. 5. `(^)` est donc associatif à droite. 6. La direction de l'associativité est donnée en bas du `:info` : `infixl` pour une associativité à gauche et `infixr` pour une associativité à droite.