1. **Qu'est-ce qu'une fonction en Haskell ?**
- Réponse: c. Une fonction est une relation entre un ensemble d'entrées et un ensemble de sorties, définie par une règle. En Haskell, une fonction est définie par une expression qui spécifie comment transformer une valeur d'entrée en une valeur de sortie.
2. **Quelle est la syntaxe pour définir une fonction en Haskell ?**
- Réponse: a. `function name = expression`. En Haskell, les fonctions sont définies en associant un nom à une expression qui spécifie le calcul à effectuer sur ses arguments.
3. **Comment appelle-t-on le processus de remplacement des occurrences d'une variable par son expression correspondante dans une fonction en Haskell ?**
- Réponse: b. Évaluation. L'évaluation est le processus de substitution des arguments d'une fonction dans son expression, ce qui permet de calculer la valeur finale.
4. **Quel est le résultat de l'expression `2 + 3 * 4` en Haskell ?**
- Réponse: b. 14. En Haskell, les opérations de multiplication (`*`) ont une priorité plus élevée que les opérations d'addition (`+`), donc l'expression est évaluée comme `2 + (3 * 4)`.
5. **Quelle est la différence entre `let` et `where` lors de la définition de variables dans Haskell ?**
- Réponse: a. `let` est utilisé à l'intérieur des fonctions, tandis que `where` est utilisé en dehors des fonctions. En Haskell, `let` permet de définir des variables localement dans une expression, tandis que `where` permet de les définir à la fin d'une fonction.
6. **Quel est le résultat de l'évaluation de l'expression `if 5 > 3 then "Yes" else "No"` en Haskell ?**
- Réponse: a. "Yes". Cette expression évalue si 5 est plus grand que 3. Comme c'est vrai, elle retourne "Yes".
7. **Qu'est-ce qu'une liste en Haskell ?**
- Réponse: a. Une liste est une séquence d'éléments de même type. En Haskell, les listes sont des structures de données homogènes, ce qui signifie qu'elles ne peuvent contenir que des éléments du même type.
8. **Comment peut-on déclarer une liste vide en Haskell ?**
- Réponse: a. `[ ]`. En Haskell, une liste vide est simplement représentée par une paire de crochets sans aucun élément à l'intérieur.
9. **Quel est le résultat de l'expression `head [1, 2, 3]` en Haskell ?**
- Réponse: b. 1. La fonction `head` renvoie le premier élément d'une liste.
10. **Quelle fonction est utilisée pour ajouter un élément à la fin d'une liste en Haskell ?**
- Réponse: b. `append`. En Haskell, la fonction `append` est utilisée pour ajouter un élément à la fin d'une liste existante.
11. **Comment peut-on déclarer une fonction anonyme en Haskell ?**
- Réponse: a. `function = \arguments -> expression`. Les fonctions anonymes, également appelées fonctions lambda, sont définies en utilisant la syntaxe `\arguments -> expression` où `\` est le symbole lambda.
12. **Quelle est la fonction utilisée pour accéder à l'élément n-ième d'une liste en Haskell ?**
- Réponse: c. `!!`. En Haskell, l'opérateur `!!` est utilisé pour accéder à l'élément n-ième d'une liste, où n est un indice entier.
13. **Quelle est la syntaxe pour déclarer un commentaire sur une seule ligne en Haskell ?**
- Réponse: c. `-- Comment`. En Haskell, les commentaires sur une seule ligne sont précédés par `--`.
14. **Quelle est la fonction utilisée pour concaténer deux chaînes de caractères en Haskell ?**
- Réponse: b. `++`. En Haskell, l'opérateur `++` est utilisé pour concaténer deux chaînes de caractères ou deux listes.