Concept

F Sharp

Résumé
F# est un langage de programmation fonctionnel, impératif et orienté objet pour la plate-forme .NET. F# est développé par Microsoft Research et son noyau est dérivé du langage OCaml, avec lequel il est fortement compatible. Ces deux langages de programmation font partie de la même famille que les langages ML. Ce langage a été conçu spécifiquement pour la plate-forme .NET, donc fortement orienté-objet. Depuis novembre 2010, Microsoft a mis à la disposition de tous les bibliothèques core et son compilateur F#, sous la licence Apache 2. F# est un langage fortement typé utilisant l'inférence de types. Ce mécanisme délègue le typage des variables et des fonctions au compilateur. Néanmoins, le langage permet au développeur d'indiquer explicitement le type à la déclaration. Intégré à l'écosystème .NET, F# supporte les types primitifs de la plate-forme ainsi que ses objets. De plus il étend le système de types et permet de faire la distinction entre les types dits immuables et ceux dits modifiables. Les objets sont considérés comme des types modifiables (en place), et sont utilisés pour la mise en place du modèle de programmation objet au sein du langage. Les types immuables sont utilisés principalement lorsque l'on programme de manière fonctionnelle ; la modification d'un type immuable crée une nouvelle instance sans pour autant écraser l'ancienne. Comme la plupart des langages dérivés de ML, F# utilise par défaut le mécanisme de l'évaluation stricte. Cependant il peut, à l'instar de Haskell, mettre en œuvre l'évaluation paresseuse des expressions grâce à l'utilisation du mot-clé lazy. Pour la programmation fonctionnelle, il fournit plusieurs constructions et un ensemble de types immuables : les n-uplets, des enregistrements, des types sommes et des listes. Un n-uplet représente une collection de n valeurs, n ≥ 0. La valeur de n correspond à l'arité du n-uplet. Le type unit représente le n-uplet vide et dont l'unique valeur possible est (). Ce type est utilisé pour typer des fonctions qui ne prennent pas en entrée de valeur et/ou n'en renvoient pas.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.