Cette série d'articles a été mise à jour en septembre 2009, à partir de la version de mai 2009 (F# 1.9.6.16).

Dans un premier temps, je ne traiterai que de l'aspect fonctionnel du langage. Donc, pas de variables, pas d'effets de bord, pas d'objets, que du fonctionnel pur. C'est le paradigme principal du langage et il est nécessaire qu'il soit bien compris avant que l'on passe au reste. Par la suite, la dimension objet sera abordée. Du fait de l'intégration dans .NET et de la compatibilité binaire avec C#, cette partie est aussi importante. En fait, pour être exact, toutes les valeurs en F# sont des objets, mais cela est transparent, on ne s'en rend pas compte de prime abord.

Installation

F# est un langage portable qui nécessite la plateforme .NET. Ce langage étant encore jeune, il évolue très rapidement. Aussi, il est conseillé de récupérer la dernière version sur le site de Microsoft Research. J'ai souvent testé F# sous Windows et sous Linux (avec Mono), il y a très peu de différences. Visual Studio (VS) est l'éditeur officiellement conseillé pour faire du F#. Le plugin est compris dans l'installation de base et apporte beaucoup : coloration, complétion, vérification du code au moment de la frappe, mode interactif, etc. Très prochainement, ce plugin sera intégré à la disctribution officielle de Visual Studio. Pour ceux qui préfèrent (notamment sous Unix), il existe un mode Emacs pour F#. Il fournit de la coloration syntaxique, un mode interactif et une indentation automatique, mais reste encore expérimental. Le wiki F# Ressources liste d'autres éditeurs utilisables.

Hello world!!!

Pour vérifier votre installation, voici le programme affichant "Hello world!".

System.Console.WriteLine "Hello world!"

Ceux qui connaissent .NET doivent reconnaitre la méthode utilisée. Les autres peuvent l'ignorer, car il y a une autre solution, plus courte et plus utilisée.

printfn "Hello world!"

La fonction printf doit être familière pour ceux qui ont fait du C. Elle affiche à l'écran le texte donné en argument et supporte de nombreux formats pour afficher chaines de caractères, nombres et autres types. La fonction printfn correspond à un appel à printf, suivi d'un saut de ligne. Quand on appelle une fonction, on sépare les arguments par des espaces, les parenthèses ne servant qu'à forcer la priorité d'un calcul.