[FR] Cours F#

Cette catégorie regroupe les cours F# que j'ai écrits. Il s'agit d'une introduction au langage, même si certains concepts avancés seront présentés.

Entries feed

Tuesday, March 22 2011

Sérialisation JSON

Il est souvent utile de sérialiser ou désérialiser des objets. Je vous propose ici un exemple utilisant le format JSON, qui est souvent utilisé pour les échanges réseau.

Pour cela, on utilise la classe DataContractJsonSerializer qui est apparue avec .NET 3.5 :

Pour utiliser ces fonctions, il suffit d'ajouter l'annotation DataMember et de rendre mutable chaque propriété. Il faut aussi marquer le type avec l'attribut DataContract. Exemple avec une structure :

Et un exemple avec une classe :

Vous pouvez bien sûr essayer cet exemple en ligne avec tryfsharp.org.

Wednesday, September 2 2009

Mise à jour des cours F#

Je viens de relire et corriger toute la section Cours F# de ce site. Les exemples fonctionnent maintenant avec la dernière version de F# (1.9.6.16).

Les principaux changements au niveau du langage concernent :

  • les compréhensions de listes, une partie du sucre syntaxique a disparu (le résultat est donc plus verbeux, mais aussi plus cohérent avec le reste) ;
  • des renommages dans la bibliothèque : fold1 est devenu reduce ; sort, sortWith (le nouveau sort n'utilise pas de fonction de comparaison) ;
  • la syntaxe basée sur l'indentation est utilisée par défaut, plusieurs bogues ont été corrigés ;
  • la notation de types (int, string) Map est maintenant dépréciée au profit de Map<int, string>.

Merci à ceux qui ont laissé des commentaires, cela m'a été utile lors de la relecture. N'hésitez pas à signaler tout oubli de ma part.

Tuesday, June 16 2009

Les unités de mesure

Les unités de mesure permettent d'annoter les nombres, améliorant ainsi la lisibilité et la sûreté du code F#.

Continue reading...

Wednesday, August 6 2008

Printf avancé

Des exemples avancés pour utiliser les fonctions de type printf. Il existe un certain nombre d'astuces, car cette fonction possède un type assez particulier.

Continue reading...

Friday, May 30 2008

Duck typing en F#

Un exemple pour obtenir du duck typing (typage dynamique) en F#.

Continue reading...

Wednesday, January 9 2008

L10 - Méthodes

Présentation des méthodes dans F# : ajout de méthodes lors de la définition d'un type, méhodes d'extension, arguments optionnels, arguments nommés, surcharge de méthodes et d'opérateurs.

Continue reading...

Tuesday, January 8 2008

L09 - Structures

Ce billet aborde les structures et leur utilisation dans un monde toujours fonctionnel.

Continue reading...

Monday, December 17 2007

Exemple de manipulation de XML

Ce billet montre une technique pour manipuler élégamment une structure XML. C'est un billet indépendant, ne faisant pas partie de la série de cours.

Continue reading...

Wednesday, December 5 2007

L08 - Déclarations de types

La déclaration de types est présentée ici : alias, énumérations, types sommes. À la fin, deux exemples montrent la manipulation d'arbres en F#.

Continue reading...

Thursday, November 22 2007

L07 - Types énumérables et compréhensions

Ce texte présente les types énumérables (seq) et explique comment on peut écrire du code générique, qui soit indépendant de la structure de données. Ce cours détaille aussi les compréhensions, fonctionnalité permettant de manipuler élégamment des ensembles.

Continue reading...

Wednesday, November 14 2007

L06 - Pattern matching

Cette page explique le filtrage par motif. C'est une fonctionnalité extrêmement puissante issue du monde fonctionnel.

Continue reading...

Sunday, November 11 2007

L05 - Fonctions d'ordre supérieur et composition

Ce cours aborde la notion de fonctions d'ordre supérieur, qui permet de gagner beaucoup en généricité. Plusieurs opérateurs sur les fonctions (composition, etc.) sont également détaillés dans cette page.

Continue reading...

Saturday, November 10 2007

L04 - Fonctions anonymes, application partielle et composition

Les fonctions anonymes, pillier de la programmation fonctionnelle, sont expliquées dans cet article. D'autres concepts importants sont également détaillés : l'application partielle de fonction et les opérateurs manipulant des fonctions.

Continue reading...

Tuesday, November 6 2007

L03 - Les fonctions, introduction

Ceci est le troisième cours de F#. Il s'agit d'une introduction aux fonctions : leur déclaration, leur utilisation.

Continue reading...

Wednesday, October 31 2007

L02 - Expressions conditionnelles et définitions

Ce billet explique le fonctionnement des expressions conditionnelles (if, then, else), des définitions (locales et globales), ainsi que du mode "light" (basé sur l'indentation).

Continue reading...

L01 - Types de base et expressions

Ce billet présente les types les plus courants de F# : entiers, chaines de caractères, listes, etc.

Continue reading...

Tuesday, October 30 2007

L00 - Introduction et Hello world!

Ce premier billet sert d'introduction au F#. Rapide description du langage, installation et premier programme.

Continue reading...

Monday, October 1 2007

Présentation du langage F#

Présentation du langage F#, ce langage fonctionnel et objet, dédié à la plate-forme .NET : pourquoi apprendre F#, et pourquoi est-il maintenant devenu mon langage de choix.

Continue reading...

Sunday, July 15 2007

Active patterns

Ce billet est basé en grande partie sur le papier Extensible Pattern Matching via a Lightweight Language Extension. Il présente le concept d'active patterns, une généralisation du pattern matching.

Continue reading...

Sunday, May 6 2007

Pretty printing et bibliothèque StructuredFormat

Cet article ne fait pas partie de l'introduction à F# : c'est un article indépendant, qui présente une fonctionnalité peu connue de F#. Si vous débutez, vous pouvez sauter sans problème ce billet.

Continue reading...