Programmiersprache: F# 4.7 erhält neue Compiler-Infrastruktur
Das Update der funktionalen Sprache setzt .NET Standard 2.0 voraus und verspricht einige Lockerungen bei den bisher schwierigen Syntaxanforderungen.
![Programmiersprache: F# 4.7 erhält neue Compiler-Infrastruktur](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/7/5/6/4/8/0/Spirale-Schleife-Kurve-Rechtecke-083a65b72278a9b0.png)
In Verbindung mit der Veröffentlichung von .NET Core 3.0 hat Microsoft auch eine neue Version seiner funktionalen Programmiersprache F# vorgelegt. F# 4.7 setzt nun mindestens .NET Standard 2.0 voraus, bietet dafür aber einige Lockerungen bei den bisher schwierigen Syntaxanforderungen sowie Änderungen an der Infrastruktur von Compiler und Core Library.
Das neue Release bietet erstmals die Möglichkeit, die effektive Sprachversion mit dem Compiler abzustimmen. Dadurch soll es künftig einfacher sein, für beliebige Compiler-Version neue Funktionen zu den bereits freigegebenen hinzuzufügen. Entwickler, die solche Preview-Features testen wollen, müssen ihre Projektdatei lediglich um die folgende Eigenschaft ergänzen und erhalten dann Zugriff auf alle für die Compiler-Version freigegebenen Funktionen:
<!-- Example -->
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Vereinfachte Syntax
Bisherige Versionen von F# verlangten für Listen, Arrays, Sequenzen oder auch für Berechnungsausdrücke, die Yield
, Combine
, Delay
und Zero
festlegen, stets das Schlüsselwort yield
anzugeben. F# 4.7 führt nun implizite Yields ein, sodass die Schlüsselwörter entfallen können.
Zwei weitere Vereinfachungen bei der Syntax sollen vor allem Einsteigern die Arbeit mit F# leichter machen. Zum einen entfällt der doppelte Unterstrich, der bisher beispielsweise erforderlich war, um member
-Deklarationen anzugeben, ohne den Bezeichner "this" bei F#-Objekten zu benennen. Die von vielen Entwicklern als Belästigung empfundene Anforderung, Parameter für Konstruktoren oder statische Methoden einrücken zu müssen, entfällt ebenfalls.
Im Zuge der Vorbereitungen auf .NET 5 sehen Microsofts Pläne für F# 5.0 unter anderen vor, die Sprache für den Einsatz in Machine-Learning- und Data-Science-Projekten aufzurüsten. Dazu sind neue Funktionen für den Umgang mit großen Datenmengen vorgesehen. Darüber hinaus soll sich F# durch den .NET Kernel künftig auch leichter in Jupyter Notebooks verwenden lassen.
Einen detaillierten Überblick aller Neuerungen in F# 4.7 liefert der Blogbeitrag zur Ankündigung. (map)