Вычислительные выражения: 4. Типы-обёртки
Под типами-обёртками подразумеваются типы, представляющие ядро билдеров, например:
В этой части говорится о связях данных типов с конструкциями
Под типами-обёртками подразумеваются типы, представляющие ядро билдеров, например:
'a option, 'a Аsync, Result<'ok, 'error> и т.д. Их иногда называют M<'a> в честь того самого слова на букву м.В этой части говорится о связях данных типов с конструкциями
let!, return и return!.Хабр
Вычислительные выражения: Типы-обёртки
В предыдущем посте мы познакомились с процессом "maybe", благодаря которому можно значительно упросить код, работающий с Option<T> . Типичное использование "maybe" выглядит так: let result =...
👍5❤2
Вычислительные выражения: 5. Подробнее про типы-обёртки
В программе:
- Использование дженериков, недженериков и списков в качестве типов-обёрток.
- Правила построения каноничных билдеров.
- Реализация
В программе:
- Использование дженериков, недженериков и списков в качестве типов-обёрток.
- Правила построения каноничных билдеров.
- Реализация
for.Хабр
Вычислительные выражения: Подробнее про типы-обёртки
В предыдущем посте мы познакомились с концепцией "типов-обёрток" и с тем, как они связаны с вычислительными выражениями. В этом посте мы разберёмся, какие типы можно использовать в качестве обёрток....
❤5👍2
Вычислительные выражения: 6. Реализуем Zero и Yield
Полезно знать, как работает
Полезно знать, как работает
let!, однако в реальности билдеры с этим механизмом характерны для абстракций уровня фреймворка. Для уровня бизнес-логики лучше определять локальные билдеры, которые больше напоминают модифицированные [] или seq {}. Базой таких билдеров являются методы Zero и Yield.Хабр
Вычислительные выражения: Реализуем Zero и Yield
В прошлых статьях цикла мы разобрались со связыванием, функциями-продолжениями и типами-обёртками. Теперь мы, наконец, готовы к знакомству с методами классов-построителей. Обратите внимание, что...
👍6🔥2🤔1
Вычислительные выражения: 7. Реализуем Combine
Метод
Метод
Combine отвечает за склеивание нескольких yield. Связка из Zero, Delay, Yield и Combine даст минимальную полноценную версию списочного билдера.Хабр
Вычислительные выражения: Реализуем Combine
В предыдущем посте мы разбирались в методах Zero и Yield . В этом посте мы рассмотрим возврат из вычислительного выражения нескольких значений с помощью метода Combine . Обратите внимание, что...
🔥5❤2👍1
Вычислительные выражения: 8. Реализуем Delay и Run
Метод
Метод
Delay позволит откладывать вычисления, а то и вовсе игнорировать их, если этого требует выражение в билдере. Run преобразует содержимое билдера во внешний результат на заключительном шаге. В статье он нужен для исполнения отложенных вычислений, которые породил Delay, но в случае бытовых билдеров Run часто выполняет роль builder.Build() из мира ООП.Хабр
Вычислительные выражения: Реализуем Delay и Run
В последних постах мы разобрали основные методы ( Bind , Return , Zero и Combine ), нужные для создания собственного построителя вычислительных выражений. Предыдущий пост рассказывал о методе Combine...
❤4👍1
REPL, скрипты, F#: интерактивный подход к прототипированию и дебагу приложений
Небольшой доклад о пользе F# и REPL даже если ваш прод на C#. К сожалению, качество звука такое, что слушать его в прикуску нет никакой возможности.
Лично я расслышал всё, но если у кого-то возникнут вопросы, то автор доклада присутствует в чате.
Небольшой доклад о пользе F# и REPL даже если ваш прод на C#. К сожалению, качество звука такое, что слушать его в прикуску нет никакой возможности.
Лично я расслышал всё, но если у кого-то возникнут вопросы, то автор доклада присутствует в чате.
YouTube
Генри Ковалевский. REPL, скрипты, F#: интерактивный подход к прототипированию и дебагу приложений
Генри Ковалевский
Ведущий разработчик, LC Group
REPL, скрипты, F#: интерактивный подход к прототипированию и дебагу приложений
Многие языки располагают возможностью использования REPL-сессий. В некоторых языках REPL может являться основным инструментом…
Ведущий разработчик, LC Group
REPL, скрипты, F#: интерактивный подход к прототипированию и дебагу приложений
Многие языки располагают возможностью использования REPL-сессий. В некоторых языках REPL может являться основным инструментом…
👍8❤2🔥1
Когда имён недостаточно. REST-клиент на F#. Часть 1. DTO
Начало нового слегка хулиганского цикла по бытовому кодогену. В этот раз на примере REST-клиента посмотрим, как можно сводить роль личности к нулю, чтобы бездушная машина могла разгуляться. Тем не менее в первой части самого кодогена нет, но есть много слов про DTO и F# вообще.
Начало нового слегка хулиганского цикла по бытовому кодогену. В этот раз на примере REST-клиента посмотрим, как можно сводить роль личности к нулю, чтобы бездушная машина могла разгуляться. Тем не менее в первой части самого кодогена нет, но есть много слов про DTO и F# вообще.
Хабр
Когда имён недостаточно. REST-клиент на F#. Часть 1. DTO
В данном цикле я хочу поговорить об одном из вариантов представления REST-клиента. Но я буду обсуждать частное (REST), чтобы использовать его как точку опоры для перехода к общему — проблеме проекций...
👍3🔥3
❤3