Microsoft выпустила стабильную версию F# 4.5

Visual Studio 2017 15.8 для F# 4.5

Команда Microsoft в своем блоге для разработчиков рассказала о выходе новой версии языка программирования F#. Ей соответствует версия SDK для компиляции 10.2. Поддержка F# 4.5 также добавлена в недавно опубликованную версию среды Visual Studio 2017 15.8.

Что нового в F# 4.5

  • Поддержка типа Span, реализованного в .NET Core 2.1. Позволяет создавать более эффективный код и взаимодействовать с ним.
  • Введение правил безопасности при работе с конструкциями ByRef. Необходимо для ограничения контекста их использования и повышения предсказуемости результата. Разработчики напоминают, что Span<'T> и ReadOnlySpan<'T> также ограничены принятым набором правил.
  • Исправление ошибок, исключающее совместимость с кодом, написанным на F# версии 4.1:
    • поддержка неявного разыменования возвратного значения ByRef;
    • замена указателя this на inref в неизменяемых структурах для исключения ошибки их замещения при вызове.
  • Поддержка нового ключевого слова match!, позволяющего сократить некоторые часто используемые шаблоны.
// Code that returns an asynchronous option
let checkBananaAsync (s: string) =
    async {
        if s = "banana" then
            return Some s
        else
            return None
    }
    
// Now you can use 'match!'
let funcWithString (s: string) =
    async { 
        match! checkBananaAsync s with
        | Some bananaString -> printfn "It's banana!"
        | None -> printfn "%s" s
}
  • Послабления в требованиях приведения к базовому типу (cast) при работе с yield в последовательностях, списках и массивах.
let x0 : obj list  = [ "a" ] // ok pre-F# 4.5
let x1 : obj list  = [ "a"; "b" ] // ok pre-F# 4.5
let x2 : obj list  = [ yield "a" :> obj ] // ok pre-F# 4.5

let x3 : obj list  = [ yield "a" ] // Now ok for F# 4.5, and can replace x2
  • Послабления в правилах отступов при работе со списками и массивами.
module Test1 = 
    System.Console.WriteLine(format="{0}", arg = [| 
        "hello"
    |])
    System.Console.WriteLine([|
        "hello"
    |])
  • Усовершенствованная трассировка стека при работе с async и дополнительные улучшения в модуле FSharp.Core.

Что нового в VS для F# 4.5

  • Добавлена возможность автоматического закрытия для парных символов "", (**), (), [], [||], {} и [<>].

Visual Studio 2017 15.8 для F# 4.5

  • Реализована функция Go to Definition — для этого необходимо кликнуть на объект с зажатой клавишей CTRL.

Visual Studio 2017 15.8 для F# 4.5

  • Добавлена экспериментальная функция CodeLens для отражения сигнатур типов.

Visual Studio 2017 15.8 для F# 4.5

Помимо поддержки F# 4.5 версия Visual Studio 2017 15.8 также получила обновление инструментов для работы с Python, С++ и JavaScript. Кроме того, добавлен эмулятор Google Android, совместимый с аппаратным виртуализатором Hyper-V, для разработки мобильных приложений.

Источник: блог .NET

Ещё интересное для вас:
— Биты, байты, Ада Лавлейс — тест на знание околоIT.
— Level Up — события и курсы, на которых можно поднять свой уровень.
— Работа мечты — лучшие IT-вакансии для вас.