Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| cnam:utc503:td3 [2024/10/16 23:43] – jcheron | cnam:utc503:td3 [2025/08/12 02:35] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 15: | Ligne 15: | ||
| * Créer une fonction qui modifie une variable extérieure (effet de bord) et expliquer pourquoi elle est impure. | * Créer une fonction qui modifie une variable extérieure (effet de bord) et expliquer pourquoi elle est impure. | ||
| + | <WRAP todo round> | ||
| + | === Points de discussion === | ||
| + | |||
| + | * Pourquoi éviter les effets de bord ? | ||
| + | * Quels types de bugs ou de problèmes peuvent survenir dans un code non pur ? | ||
| + | </ | ||
| ===== Exercice 2 : Immutabilité ===== | ===== Exercice 2 : Immutabilité ===== | ||
| Ligne 25: | Ligne 31: | ||
| * Modifier directement un tableau en utilisant `.push()` et observer les changements sur le tableau d' | * Modifier directement un tableau en utilisant `.push()` et observer les changements sur le tableau d' | ||
| - | ==== 3 - Modification | + | ==== 3 - Modification |
| * Écrire une fonction qui modifie une propriété d'un objet sans altérer l' | * Écrire une fonction qui modifie une propriété d'un objet sans altérer l' | ||
| + | <WRAP todo round> | ||
| + | === Points de discussion === | ||
| + | |||
| + | * Pourquoi l' | ||
| + | * Quels avantages cela présente-t-il pour la gestion des états dans des applications complexes ? | ||
| + | </ | ||
| ===== Exercice 3 : Transparence Référentielle ===== | ===== Exercice 3 : Transparence Référentielle ===== | ||
| Ligne 38: | Ligne 50: | ||
| ==== 2 - Transparence dans des expressions complexes ==== | ==== 2 - Transparence dans des expressions complexes ==== | ||
| - | * Introduire des fonctions imbriquées et remplacer les appels par leurs valeurs. | + | * Introduire des fonctions imbriquées |
| * Tester si le programme reste identique. | * Tester si le programme reste identique. | ||
| Ligne 45: | Ligne 57: | ||
| * Créer une fonction avec des effets de bord (ex: `Math.random()` ou modification d'une variable globale) et expliquer pourquoi elle n'est pas transparente. | * Créer une fonction avec des effets de bord (ex: `Math.random()` ou modification d'une variable globale) et expliquer pourquoi elle n'est pas transparente. | ||
| + | <WRAP todo round> | ||
| + | === Points de discussion === | ||
| + | |||
| + | * Pourquoi la transparence référentielle est-elle cruciale pour rendre un code plus facile à lire et à raisonner ? | ||
| + | * Comment la transparence référentielle permet-elle d' | ||
| + | </ | ||
| ===== Exercice 4 : Fonctions d' | ===== Exercice 4 : Fonctions d' | ||
| Ligne 59: | Ligne 77: | ||
| * Expérimenter avec les méthodes comme `filter()`, `reduce()`, et `forEach()` pour transformer des tableaux. | * Expérimenter avec les méthodes comme `filter()`, `reduce()`, et `forEach()` pour transformer des tableaux. | ||
| + | <WRAP todo round> | ||
| + | === Points de discussion === | ||
| + | |||
| + | * En quoi les fonctions d’ordre supérieur facilitent-elles la modularité du code ? | ||
| + | * Comment ce concept peut-il être utilisé pour encapsuler des comportements et les réutiliser dans plusieurs contextes ? | ||
| + | </ | ||
| ===== Exercice 5 : Combinaison des principes ===== | ===== Exercice 5 : Combinaison des principes ===== | ||
| Ligne 74: | Ligne 98: | ||
| * Réécrire le code en appliquant les principes vus, comme découper en plus petites fonctions pures. | * Réécrire le code en appliquant les principes vus, comme découper en plus petites fonctions pures. | ||
| + | <WRAP todo round> | ||
| + | === Points de discussion === | ||
| + | |||
| + | * Quel est l' | ||
| + | * Pouvez-vous voir où la transparence référentielle intervient dans ce code ? | ||
| + | * Comment la combinaison de ces principes conduit-elle à un code plus fiable et facile à maintenir ? | ||
| + | * Quelles améliorations peuvent être apportées pour rendre le code plus fonctionnel ? | ||
| + | </ | ||