5. 5 La programmation fonctionnelle est une corde additionnelle à notre arc ASP.NET SQL POO ORM PF C# TDD Les défis de demain Programmation asynchrone Parallélisme « Mutations » de C#
6. 6 Nous pouvons programmer de manière fonctionnelle en .Net C# F#
13. 9 À propos de F# Langage de programmation générique et concis Langage hybride (fonctionnel, objet) de la plateforme .Net Peut être utilisé en mode interactif mais est fortement typé et intégré à .Net Caractéristiques intéressantes pour les objets, agents asynchrones, parallélisme et les unités de mesures
14. Démo: Découvrons F# La console interactive Les valeurs (primitives, fonctions, etc.) Une application F# dans Visual Studio Gestion des fichiers La syntaxe de base Les espaces sont importants La case différencie les valeurs ``Malgré les caractères %@!, ce nom de valeur est légal en F#.``
18. 12 La programmation fonctionnelle … est un paradigme de programmationqui considère le calcul en tant qu'évaluation de fonctions mathématiques et rejette le changement d'état et la mutation des données. Elle souligne l'application des fonctions, contrairement au modèle de programmation impérative qui met en avant les changements d'état. http://fr.wikipedia.org/wiki/Programmation_fonctionnelle “Functional Programming in a nutshell is programming with functions… In functional programming, functions are not special; they are treated the same as data.” Brian Beckman http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-Dont-fear-the-Monads
19. La programmation impérative exige un contrôle des effets de bord 13 Synchronisation des effets de bord Système Classe Méthode X = X + 1 Effet de bord
20. La programmation fonctionnelle permet un style déclaratif 14 let x = 1 Déclarations let add a b = a + b let inc = add x add 21 21 val it : int = 42 Applications de fonction add 1 val it : int -> int = <fun:it@10> inc 41 val it : int = 42
21. Démo : idiomes de la programmation fonctionnelle 15 Valeurs immuables Structures de données immuables Tuples Listes Discriminated Union Type Fonctions récursives “Pattern matching” Utilisation des fonctions comme valeurs Fonctions d’ordre supérieur
22. Démo : un exemple complet 16 Analyse des indicateurs du développement de la banque mondiale Calcul de la surface couverte de forêt des différentes régions de la planète
23. Chaque style de programmation a ses forces et ses faiblesses 17
27. Pour continuer avec F# 19 FSI.exe Tutoriels MSDN Go to definition dans visual studio Lutz’ reflector http://cs.hubfs.net http://msdn.microsoft.com/en-us/fsharp/default.aspx
Plusieurs sources de donnéesPlusieurs formatsPlusieurs plateformesMulti core
La composition de fonctions simples est la clé pour gérer la complexité de l’activité de développement.
Je ne veux pas vous convaincre d’apprendre F# à tout prixPas de démonstrations tape à l’œil avec du traitement asynchrone et parallèleDes exemples simples pour illustrer les conceptsUne utilisation concrètePrésentation de niveau 101 (académique)Pas de survol généralDu code simple
Je ne veux pas vous convaincre d’apprendre F# à tout prixPas de démonstrations tape à l’œil avec du traitement asynchrone et parallèleDes exemples simples pour illustrer les conceptsUne utilisation concrètePrésentation de niveau 101 (académique)Pas de survol généralDu code simple
DémoCréer une application console F# (FirstSetps)Dans program.fsAfficher HelloWorldExécuter la ligne Alt+#Paramétriser le nom (déduction du type de la fonction printfn)Intégration avec .NetLire le nom à la consoleUtiliser windowformsRefactorisationExtractmethodExtract classIntégration à C#Module -> classe statiqueReflector
Je ne veux pas vous convaincre d’apprendre F# à tout prixPas de démonstrations tape à l’œil avec du traitement asynchrone et parallèleDes exemples simples pour illustrer les conceptsUne utilisation concrètePrésentation de niveau 101 (académique)Pas de survol généralDu code simple
Je ne veux pas vous convaincre d’apprendre F# à tout prixPas de démonstrations tape à l’œil avec du traitement asynchrone et parallèleDes exemples simples pour illustrer les conceptsUne utilisation concrètePrésentation de niveau 101 (académique)Pas de survol généralDu code simple