Your SlideShare is downloading. ×
0
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 />...
Upcoming SlideShare
Loading in...5
×

Programmation fonctionnelle avec f#

1,557

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,557
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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
  • Transcript of "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 />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×