F# News
462 subscribers
7 photos
1.36K links
F# channel
@fsharp_chat

Send your proposals to @fsharp_chat
Download Telegram
Сервер Юк. Заставляем Yandex Cloud Functions работать на F#

Простая статья по скрещиванию F# и Yandex Cloud Functions. Писалась с прицелом на начинающих разрабов (, а также, видимо, татар).

Первая половина посвящена процессу впихивания F# в облако, которая завершается фиксацией минимального канона. Вторую половину статьи заполнил полусинтетический (из-за явной неполноты) пример.
Большой код. Учимся генерировать F#-исходники с помощью Fantomas. Часть 1. Знакомимся с содержимым синтаксического древа

Начинаем предположительно большой цикл статей по кодогенерации. Тема эта сложная в основном из-за ошеломляющего объёма новой информации на начальном этапе. Именно с этой проблемой будут разбираться первые две статьи.

В первой части мы сначала слегка пробежимся по Мириаду, чтобы понять, что в большинстве кодогенераторов он нам не нужен. Потом заглянем внутрь AST, ужаснёмся его размерам и узнаем, как подготовленный "частичный взгляд" на него может дать очень хороший результат в умелых руках.

Следующая часть выйдет ровно через неделю. В ней мы напишем свой первый крохотный кодогенератор, для чего перед этим познакомимся с инфраструктурой AST.
Announcing F# 8

# F# language changes

- _.Property shorthand for (fun x -> x.Property)
- Nested record field copy and update
- while!
- Extended string interpolation syntax
- Use and compose string literals for printf and related functions
- Arithmetic operators in literals
- Type constraint intersection syntax
- Extended fixed bindings
- Easier [<Extension>] method definition

# Making F# more uniform

- Static members in interfaces
- Static let in discriminated unions, records, structs, and types without primary constructors
- try-with within seq{},[] and [||] collection expressions

# New diagnostics

- TailCall attribute
- Diagnostics on static classes
- Diagnostics on [<Obsolete>] usage
- Optional warning when obj is inferred
- Optional warning when copy and update changes all fields

# Quality of life improvements

# Compiler performance

# Enhancements to the FSharp.Core standard library Inlining
Большой код. Учимся генерировать F#-исходники с помощью Fantomas. Часть 2. Собираем AST

Сначала изучим способы ускорения сборки AST. Узнаем, как это делали предки до выхода Fantomas.AST, и как эту проблему можно решить сейчас. Потом научимся конвертировать AST в код и напишем первый микро генератор.

По итогу, хотелось бы донести идею, что с нужным инструментом генерация кода больше всего напоминает генерацию статичного UI, и уровень сложности данных задач мало чем отличается.
Когда-либо давал. F#-сервер из скрипта на примере локального брокера сообщений

Статья о том как быстро поднять утилитарный сервер на F#. Повествование крутится вокруг связки из Suave, Hopac и Fable.Remoting. Предложенные механизмы хоть и давно обкатаны, затрагивают слабо документированные особенности и возможности перечисленных библиотек, поэтому они были разобраны детально. Достаточно подробно, чтобы при необходимости любой из элементов данной триады мог быть либо самостоятельно заменён на аналог, либо вовсе пропущен, если в нём отпадает необходимость. Так что можно не пугаться Hopac в превью, если он вызывает у вас излишний трепет, он влияет на бизнес-логику лишь в двух параграфах.
https://x.com/fablecompiler/status/1750427314125422969?s=46


Fable:

First release of 2024 is here and there is a lot in it.

Please refer to the changelog for more information, it contains too many things to make the usual highlights (which is a good thing) 🎉

Thank you to all the contributors. ❤️
Top 5 Best Zoom Cameras