TD3 C
Programmation fonctionnelle
1 - Générateur de phrases
Créez un générateur de phrases absurdes en programmation fonctionnelle.
Données de départ
const sujets = ['Le chat', 'Un développeur', 'La licorne', 'Le prof'] const verbes = ['mange', 'programme', 'dessine', 'rêve de'] const complements = ['des pizzas', 'en Python', 'des arcs-en-ciel', 'vacances']
Objectifs
- Créer une fonction qui génère une phrase aléatoire en combinant un sujet, un verbe et un complément
- Créer une fonction qui génère N phrases (ex: 5 phrases)
- Transformer les phrases avec map :
- Mettre en majuscules
- Ajouter un emoji à la fin
- Filtrer les phrases avec filter :
- Garder seulement celles qui contiennent un mot spécifique
- Garder seulement les phrases de plus de 30 caractères
- Calculer des statistiques avec reduce :
- Nombre moyen de mots par phrase
- La phrase la plus longue
Contraintes
- Utiliser uniquement des fonctions pures
- Ne jamais modifier les tableaux originaux
- Privilégier map, filter, reduce
2 - Playlist Fonctionnelle
Gérez une playlist musicale en programmation fonctionnelle.
Données de départ
const chansons = [ { titre: 'Bohemian Rhapsody', artiste: 'Queen', duree: 354, genre: 'rock', annee: 1975 }, { titre: 'Billie Jean', artiste: 'Michael Jackson', duree: 294, genre: 'pop', annee: 1982 }, { titre: 'Smells Like Teen Spirit', artiste: 'Nirvana', duree: 301, genre: 'rock', annee: 1991 }, { titre: 'One More Time', artiste: 'Daft Punk', duree: 320, genre: 'electro', annee: 2000 }, { titre: 'Wonderwall', artiste: 'Oasis', duree: 258, genre: 'rock', annee: 1995 }, { titre: 'Get Lucky', artiste: 'Daft Punk', duree: 367, genre: 'electro', annee: 2013 } ]
Objectifs
Filtrer la playlist :
- Garder seulement les morceaux de rock
- Garder les chansons de moins de 5 minutes (300 secondes)
- Garder les chansons des années 90 (1990-1999)
Transformer les données avec map :
- Convertir la durée en format “minutes:secondes” (ex: “5:54”)
- Créer un nouveau tableau avec seulement {titre, artiste}
- Ajouter une propriété label : “titre - artiste”
Calculer avec reduce :
- La durée totale de la playlist (en minutes)
- Le nombre de chansons par genre
- L'année moyenne de sortie
Composer des fonctions :
- Créer une fonction qui filtre par genre ET trie par année
- Créer une “mini-playlist” : 3 chansons aléatoires de moins de 5 min
Contraintes
- Utiliser uniquement des fonctions pures
- Ne jamais modifier le tableau original
- Privilégier map, filter, reduce, sort
- Pas de boucles for / while
- Pas de variables réassignées (let)