Fondamentaux et avantages de la programmation fonctionnelle (fonctions pures, immuabilité et monades)