📌 Одним из существенных дополнений является сокращение для определения простых лямбда-функций, которое особенно полезно в ситуациях, когда лямбда-функция ограничена атомарным выражением лямбда-аргумента.
📌 Вторая ключевая функция касается копирования и обновления вложенных записей. Она упрощает процесс копирования и обновления полей вложенных записей, предоставляя более эффективный и простой подход к манипулированию полями внутри записей.
📌 Также в новой версии появилась функция
while!
, которая упрощает использование вычислительных выражений. Вот пример ее использования внутри блока async{}:let doStuffWithWhileBang =
async {
while! asyncCondition do
count <- count + 2
return count
}
📌 В F# 8 представлен расширенный синтаксис интерполяции строк и появилась поддержка строковых литералов во встроенных функциях вывода:
[<Literal>]
let formatBody = "(%f,%f)"
[<Literal>]
let formatPrefix = "Person at coordinates"
[<Literal>]
let fullFormat = formatPrefix + formatBody
let renderedCoordinates = sprintf formatBody 0.25 0.75
let renderedText = sprintf fullFormat 0.25 0.75
📌 В этом выпуске F# претерпевает значительные улучшения, направленные на повышение единообразия и согласованности. Статические члены теперь можно объявлять и реализовывать в интерфейсах, выделяя конкретные члены в отличие от статических абстрактных членов F# 7.
[<Interface>]
type IDemoable =
abstract member Show: string -> unit
static member AutoFormat(a) = sprintf "%A" a
Всё это — далеко не все, что было добавлено в новой версии F#. Читайте подробнее в блоге Microsoft.
#fsharp
Please open Telegram to view this post
VIEW IN TELEGRAM
Microsoft News
Announcing F# 8
Read what is new in F# 8 - the language, compiler tooling and FSharp.Core standard library
👍11🔥4🤔3🥱2