Introduction à la programmation fonctionnelle avec F#
- Les principes de la programmation fonctionnelle. Les paradigmes sous-jacents.
- La programmation fonctionnelle en .NET. L'environnement. Les possibilités offertes par la plateforme .NET.
- Vue générale du langage F# et de son écosystème.
- Pourquoi utiliser le langage F# ? Pour quoi faire ? Un petit historique.
- Les points forts du langage F#. Avantages et inconvénients.
- Impacts sur la façon de concevoir.
Travaux pratiques
Démonstrations et tests d'applications.
Prise en main du langage F#
- Prise en main de l'environnement et des outils.
- Les bases du langage. Comment écrire un programme simple.
- Les types.
- Travailler avec les collections.
- Active Patterns, Quotations...
- Programmation impérative. Les principes de base avec F#.
- Interopérabilité avec .NET. L'intégration à l'écosystème .NET.
- Mode Interactif et Scripting.
Exercice
Prise en main de l'environnement. Construction d'un programme de base (fonctions, collections).
Panorama des techniques de programmation avancées
- Programmation asynchrone avec les workflows asynchrones.
- Créer des interfaces utilisateurs : pour le Web, WPF et les applications Windows, les graphiques et l'interactivité.
- Algorithmique et Intelligence collective.
- Programmation scientifique et unités de mesure.
- Evénements F# et Rx (.NET Reactive Extensions).
- Programmation parallèle avec la TPL (.Net Task Parallel Library).
- Conception multi-agent avec le modèle Acteur.
- Language Oriented Programming et DSL (Domain Specific Languages).
Exercice
Algorithmes et unités de mesure. Démonstration d'un automate cellulaire.
Construire des applications avec F#
- Les domaines d'application du langage F#.
- Gérer des projets en F# et les structurer.
- Construire une application e-Commerce ASP.NET MVC 3.
- Construire un moteur de recommandations pour un site e-Commerce.
- Construire un client Twitter WPF.
- Construire une application d'analyse des données d'un jeu de hasard.
Travaux pratiques
Développement d'applications basées sur des cas concrets.