cnam:utc503:td3

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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] jcheroncnam: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 ?
 +</WRAP>
 ===== 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'origine.   * Modifier directement un tableau en utilisant `.push()` et observer les changements sur le tableau d'origine.
  
-==== 3 - Modification immuable d'un objet ====+==== 3 - Modification immutable d'un objet ====
  
   * Écrire une fonction qui modifie une propriété d'un objet sans altérer l'original.   * Écrire une fonction qui modifie une propriété d'un objet sans altérer l'original.
  
 +<WRAP todo round>
 +=== Points de discussion ===
 +
 +  * Pourquoi l'immutabilité est-elle essentielle en programmation fonctionnelle ?
 +  * Quels avantages cela présente-t-il pour la gestion des états dans des applications complexes ?
 +</WRAP>
 ===== 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 (somme et multiplication par exemple) et remplacer les appels par leurs valeurs.
   * 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'optimiser ou de simplifier un code lors du développement ?
 +</WRAP>
 ===== Exercice 4 : Fonctions d'ordre supérieur ===== ===== Exercice 4 : Fonctions d'ordre supérieur =====
  
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 ?
 +</WRAP>
 ===== 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'impact de l'immuabilité dans cet exemple ?
 +  * 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 ?
 +</WRAP>
  • cnam/utc503/td3.1729115019.txt.gz
  • Dernière modification : il y a 6 mois
  • (modification externe)