Les développeurs de Microsoft ont presque achevé les travaux sur les fonctionnalités de F# 5, la mise à niveau du langage de programmation fonctionnel open source pour .NET. Nouveauté de ce dernier aperçu : la très demandée fonctionnalité d'interpolation de chaînes de caractères. Dans F#, les chaînes interpolées sont assez similaires à celles des langages C# ou JavaScript, ce qui permet aux développeurs d’insérer des « trous » à l'intérieur des littéraux de chaînes. Les chaînes interpolées en F# offrent également une interpolation typée, similaire à la fonction sprint, afin de garantir qu'une expression dans un contexte interpolée est conforme à un type particulier.
Dans un communiqué, Microsoft a déclaré que la mise au point de la fonctionnalité avait été achevée le 27 août, à l'exception d’une amélioration qualifiée de « mineure » devant être livrée avec la candidate release de .NET 5. Le langage F# 5 devrait être disponible en novembre, en même temps que la plate-forme de développement logiciel .NET 5. Dans un premier temps, Microsoft se concentrera essentiellement sur la correction des bogues et la collecte des feedbacks sur le langage.
Les autres fonctionnalités
F# 5 est accessible en installant le SDK de prévisualisation de .NET 5 ou via .NET et Jupyter Notebooks. Parmi les fonctionnalités ajoutées récemment aux développements de F# 5 on peut citer :
. Le support nameof est désormais complet. nameof résout le symbole pour lequel il est utilisé et produit un nom qui le représente tel qu'il est appelé dans la source F#. Cela peut être utile dans des scénarios comme le logging, ce dernier étant protégé contre les modifications du code source.
. Les déclarations de type ouvert sont présentes dans l'aperçu. Elles sont similaires aux classes statiques ouvertes de C#, sauf qu'elles présentent des différences de syntaxe et un comportement légèrement différent pour se conformer à la sémantique de F#. Avec les déclarations de type ouvert, les développeurs peuvent ouvrir n'importe quel type pour exposer son contenu statique. Ils peuvent également ouvrir des type « Unions » et « Records » définis par F# pour en exposer le contenu. Cela peut s’avérer utile si un type « Union » est défini dans un module et que les développeurs veulent accéder à ses cas sans ouvrir le module entier.
. Les expressions de calcul, qui permettent aux développeurs d'améliorer l'expressivité des composants, ont été améliorées pour permettre les formulaires de demande.
. Dans cette preview, les interfaces peuvent être mises en œuvre dans des instances de classes génériques.