https://www.pyxis-tech.ca/confluence/download/attachments/17170588/template+open+office+pres.odp<br />Introduction à F#<br...
2<br />Développer devient de plus en plus complexe…<br />PFX<br />Rx<br />…<br />C# 2.0C# 3.0<br />C# 4.0<br />…<br />
3<br />Sans oublier le facteur humain<br />
4<br />map (reducecomplexity)<br />La programmation fonctionnelle permet de gérer cette complexité<br />
5<br />La programmation fonctionnelle est une corde additionnelle à notre arc<br />ASP.NET<br />SQL<br />POO<br />ORM<br /...
6<br />Nous pouvons programmer de manière fonctionnelle en .Net<br />C#<br />F#<br />
Débuter avec F#<br /><ul><li>Utiliser F#
Programmer avec des fonctions
Continuer l’apprentissage de F#</li></ul>7<br />
Débuter avec F#<br /><ul><li>Utiliser F#
Programmer avec des fonctions
Continuer l’apprentissage de F#</li></ul>8<br />
9<br />À propos de F#<br />Langage de programmation générique et concis<br />Langage hybride (fonctionnel, objet) de la pl...
Démo: Découvrons F#<br />La console interactive<br />Les valeurs (primitives, fonctions, etc.)<br />Une application F# dan...
Débuter avec F#<br /><ul><li>Utiliser F#
Programmer avec des fonctions
Continuer l’apprentissage de F#</li></ul>11<br />
12<br />La programmation fonctionnelle<br />… est un paradigme de programmationqui considère le calcul en tant qu'évaluati...
La programmation impérative exige un contrôle des effets de bord<br />13<br />Synchronisation des effets de bord<br />Syst...
La programmation fonctionnelle permet un style déclaratif<br />14<br />let x = 1<br />Déclarations<br />let add a b = a + ...
Démo : idiomes de la programmation fonctionnelle<br />15<br />Valeurs immuables<br />Structures de données immuables<br />...
Prochain SlideShare
Chargement dans…5
×

Programmation fonctionnelle avec f#

1 959 vues

Publié le

Présentation d'introduction à la programmation fonctionnelle avec F# faite à la communauté .net de Montréal

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 959
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
20
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 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 -&gt; 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
  • Programmation fonctionnelle avec f#

    1. 1. https://www.pyxis-tech.ca/confluence/download/attachments/17170588/template+open+office+pres.odp<br />Introduction à F#<br />Penser différemment<br />1<br />
    2. 2. 2<br />Développer devient de plus en plus complexe…<br />PFX<br />Rx<br />…<br />C# 2.0C# 3.0<br />C# 4.0<br />…<br />
    3. 3. 3<br />Sans oublier le facteur humain<br />
    4. 4. 4<br />map (reducecomplexity)<br />La programmation fonctionnelle permet de gérer cette complexité<br />
    5. 5. 5<br />La programmation fonctionnelle est une corde additionnelle à notre arc<br />ASP.NET<br />SQL<br />POO<br />ORM<br />PF<br />C#<br />TDD<br />Les défis de demain<br />Programmation asynchrone<br />Parallélisme<br />« Mutations » de C#<br />
    6. 6. 6<br />Nous pouvons programmer de manière fonctionnelle en .Net<br />C#<br />F#<br />
    7. 7. Débuter avec F#<br /><ul><li>Utiliser F#
    8. 8. Programmer avec des fonctions
    9. 9. Continuer l’apprentissage de F#</li></ul>7<br />
    10. 10. Débuter avec F#<br /><ul><li>Utiliser F#
    11. 11. Programmer avec des fonctions
    12. 12. Continuer l’apprentissage de F#</li></ul>8<br />
    13. 13. 9<br />À propos de F#<br />Langage de programmation générique et concis<br />Langage hybride (fonctionnel, objet) de la plateforme .Net<br />Peut être utilisé en mode interactif mais est fortement typé et intégré à .Net<br />Caractéristiques intéressantes pour les objets, agents asynchrones, parallélisme et les unités de mesures<br />
    14. 14. Démo: Découvrons F#<br />La console interactive<br />Les valeurs (primitives, fonctions, etc.)<br />Une application F# dans Visual Studio<br />Gestion des fichiers<br />La syntaxe de base<br />Les espaces sont importants<br />La case différencie les valeurs<br />``Malgré les caractères %@!, ce nom de valeur est légal en F#.``<br />
    15. 15. Débuter avec F#<br /><ul><li>Utiliser F#
    16. 16. Programmer avec des fonctions
    17. 17. Continuer l’apprentissage de F#</li></ul>11<br />
    18. 18. 12<br />La programmation fonctionnelle<br />… 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.<br />http://fr.wikipedia.org/wiki/Programmation_fonctionnelle<br />“Functional Programming in a nutshell is programming with functions… In functional programming, functions are not special; they are treated the same as data.”<br />Brian Beckman<br />http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-Dont-fear-the-Monads<br />
    19. 19. La programmation impérative exige un contrôle des effets de bord<br />13<br />Synchronisation des effets de bord<br />Système<br />Classe<br />Méthode<br />X = X + 1<br />Effet de bord<br />
    20. 20. La programmation fonctionnelle permet un style déclaratif<br />14<br />let x = 1<br />Déclarations<br />let add a b = a + b<br />let inc = add x<br />add 21 21 val it : int = 42<br />Applications de fonction<br />add 1 val it : int -> int = <fun:it@10><br />inc 41<br />val it : int = 42<br />
    21. 21. Démo : idiomes de la programmation fonctionnelle<br />15<br />Valeurs immuables<br />Structures de données immuables<br />Tuples<br />Listes<br />Discriminated Union Type<br />Fonctions récursives<br />“Pattern matching”<br />Utilisation des fonctions comme valeurs<br />Fonctions d’ordre supérieur<br />
    22. 22. Démo : un exemple complet<br />16<br />Analyse des indicateurs du développement de la banque mondiale<br />Calcul de la surface couverte de forêt des différentes régions de la planète<br />
    23. 23. Chaque style de programmation a ses forces et ses faiblesses<br />17<br />
    24. 24. Débuter avec F#<br /><ul><li>Utiliser F#
    25. 25. Programmer avec des fonctions
    26. 26. Continuer l’apprentissage de F#</li></ul>18<br />
    27. 27. Pour continuer avec F#<br />19<br />FSI.exe<br />Tutoriels MSDN<br />Go to definition dans visual studio<br />Lutz’ reflector<br />http://cs.hubfs.net<br />http://msdn.microsoft.com/en-us/fsharp/default.aspx<br />
    28. 28. Livres<br />20<br />
    29. 29. Merci<br />21<br />Questions ?<br />

    ×