Partager via


Nouveautés de Visual F# 2010

F# est un langage de programmation multiparadigme pour .NET Framework, disponible dans Visual Studio 2010. F# prend en charge la programmation fonctionnelle, la programmation orientée objet et la programmation impérative.

Fonctionnalités de la version Visual Studio 2010 de Visual F#

Les sections suivantes décrivent quelques-unes des fonctionnalités disponibles dans la première version de Visual F#.

Prise en charge de la programmation fonctionnelle

Les fonctions sont traitées en tant que valeurs et peuvent être passées directement à d'autres fonctions. Cette fonctionnalité facilite le codage de fonctions d'ordre supérieur (fonctions qui opèrent sur les fonctions). Vous pouvez ainsi écrire aisément plus de code déclaratif, celui-ci ayant tendance à être moins sujet aux erreurs.

F# prend en charge la programmation compositionnelle. Vous pouvez composer et appeler les fonctions dans l'ordre à l'aide d'une syntaxe d'opérateur simple. Vous pouvez combiner les appels de fonction à l'aide de l'opérateur de pipeline, qui permet de donner la valeur de sortie ou de retour d'une fonction comme entrée à une autre fonction. Vous pouvez également définir de nouvelles fonctions en combinant des fonctions à l'aide de l'opérateur de composition.

Pour plus d'informations, consultez Fonctions (F#).

Expressions lambda

Les expressions lambda permettent de définir des fonctions sur place, sans avoir à les nommer. Pour plus d'informations, consultez Expressions lambda : mot clé fun (F#).

Types de données utiles

F# fournit des types qui prennent en charge les styles de programmation fonctionnelle, tels que les tuples pour les collections simples de données et les unions discriminées pour les données symboliques structurées. Pour plus d'informations, consultez Tuples (F#), Unions discriminées (F#) et Options (F#).

Types de données immuables

F# fournit des structures de données immuables, telles que des listes, des mappages, des jeux, des séquences et des enregistrements immuables. Pour plus d'informations, consultez Listes (F#), Séquences (F#) et Enregistrements (F#).

Critères spéciaux

La fonctionnalité de critères spéciaux vous permet de décomposer les données en parties constituantes et d'effectuer des branchements complexes en fonction de la décomposition des données. Les critères spéciaux sont également extensibles. Pour plus d'informations, consultez Expressions match (F#), Critères spéciaux (F#) et Modèles actifs (F#).

Programmation asynchrone et parallèle

F# prend en charge la programmation asynchrone, et inclut des constructions qui simplifient plus que jamais cette programmation. Pour plus d'informations, consultez Workflows asynchrones (F#). F# peut également être utilisé conjointement aux extensions parallèles au .NET Framework. Avec le F# Power Pack, vous pouvez également utiliser Parallel LINQ (PLINQ) avec F#. Pour plus d'informations, consultez Programmation parallèle dans le .NET Framework.

Programmation interactive

Visual F# inclut un interpréteur F#, F# Interactive (fsi.exe), qui compile et exécute le code de façon interactive. Cela vous permet de facilement prototyper votre code et d'essayer des constructions de code sans avoir à compiler un projet. F# Interactive est également intégré à l'IDE de Visual Studio. Pour plus d'informations, consultez Référence de F# Interactive (fsi.exe).

Calculs différés

F# prend en charge le calcul tardif, qui vous permet de différer un calcul jusqu'à ce qu'un résultat soit exigé. Pour plus d'informations, consultez Calculs tardifs (F#).

Prise en charge de la programmation orientée objet

F# prend en charge des fonctionnalités de langage orienté objet qui accordent aux programmes F# un accès complet au .NET Framework et vous donnent la possibilité de générer des API .NET Framework en F#. Pour plus d'informations, consultez Classes (F#), Membres (F#) et Héritage (F#).

Prise en charge de la programmation impérative

F# prend en charge des constructions de code impératif, notamment les variables et les tableaux mutables, les fonctions ayant des effets secondaires et les constructions de bouclage. Elles sont utiles dans les situations où ce genre de programmation constitue le meilleur moyen de résoudre un problème.

Prise en charge des calculs mathématiques

F# prend en charge les calculs mathématiques. Cela inclut la prise en charge de la surcharge d'opérateur, des opérateurs qui fonctionnent avec des génériques et un jeu complet d'opérateurs mathématiques (y compris un opérateur d'élévation à une puissance).

F# assure également la prise en charge des données à virgule flottante ayant des unités de mesure associées, ce qui vous permet de créer des formules à virgule flottante avec vérification des unités.

Système de type avancé

F# prend en charge la programmation générique. Pour plus d'informations, consultez Génériques (F#).

F# est un langage typé statiquement qui prend en charge l'inférence de type. Cela signifie que tous les éléments de programme ont un type défini au moment de la compilation, garantissant ainsi la sécurité de type ; toutefois, vous n'êtes pas tenu de spécifier explicitement les types de chaque valeur. Étant donné que le compilateur F# peut fréquemment déduire le type d'un élément de programme sans aucun type explicite fourni, le code est plus compact et certaines erreurs de programmation associées aux incompatibilités de type s'en trouvent réduites. L'inférence de type inclut également la généralisation automatique, ce qui signifie que les fonctions qui peuvent être génériques sont automatiquement compilées comme génériques. Pour plus d'informations, consultez Inférence de type (F#).

Bibliothèques utiles

Visual F# inclut un jeu de bibliothèques qui assure la prise en charge du langage principal, des types de collection, de la réflexion sur les assemblys F# et de l'E/S mise en forme. F# fournit également un accès aux fonctionnalités complètes de .NET Framework 4, telles que les extensions parallèles au .NET Framework et Windows Presentation Foundation. Pour plus d'informations, consultez .NET Framework 4.

Voir aussi

Autres ressources

Référence du langage F#

Mise en route avec F#