Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 334 сообщений
Cообщения с меткой

f# - Самое интересное в блогах

Следующие 30  »
rss_habr

[Перевод] Грокаем Traversable

Пятница, 03 Февраля 2023 г. 12:30 (ссылка)

Грокнув Traversable, вы удивитесь, как вы вообще раньше жили без него. Попытки понять Traversable просто глядя на сигнатуру типа никогда не доставляли мне особого удовольствия. Поэтому, в этом посте мы используем другой подход и сами придумаем его в процессе решения реальной задачи. Так мы прочувствуем момент осознания, когда наконец поймем, как он работает, и где его можно применять.

Читать далее

https://habr.com/ru/post/714532/?utm_source=habrahabr&utm_medium=rss&utm_campaign=714532

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем Traversable

Пятница, 03 Февраля 2023 г. 12:30 (ссылка)

Грокнув Traversable, вы удивитесь, как вы вообще раньше жили без него. Попытки понять Traversable просто глядя на сигнатуру типа никогда не доставляли мне особого удовольствия. Поэтому, в этом посте мы используем другой подход и сами придумаем его в процессе решения реальной задачи. Так мы прочувствуем момент осознания, когда наконец поймем, как он работает, и где его можно применять.

Читать далее

https://habr.com/ru/post/714532/?utm_source=habrahabr&utm_medium=rss&utm_campaign=714532

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем валидацию при помощи аппликативного функтора

Понедельник, 09 Января 2023 г. 12:00 (ссылка)

В предыдущем посте мы открыли Аппликативный функтор, а если точнее, изобрели функцию apply. С ее помощью мы решили проблему валидации полей кредитной карты. Функция apply позволила легко объединить результаты каждой функции, отдельно проверяющей одно поле - номер карты, срок действия и CVV - в объект типа Result, который представляет финальный результат проверки всех данных кредитной карты на корректность. Возможно, вы также помните, что в случае если у нас есть несколько ошибок валидации, мы решили пойти простым путем и просто возвращать первую из них.

Читать далее

https://habr.com/ru/post/709376/?utm_source=habrahabr&utm_medium=rss&utm_campaign=709376

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем валидацию при помощи аппликативного функтора

Понедельник, 09 Января 2023 г. 12:00 (ссылка)

В предыдущем посте мы открыли Аппликативный функтор, а если точнее, изобрели функцию apply. С ее помощью мы решили проблему валидации полей кредитной карты. Функция apply позволила легко объединить результаты каждой функции, отдельно проверяющей одно поле - номер карты, срок действия и CVV - в объект типа Result, который представляет финальный результат проверки всех данных кредитной карты на корректность. Возможно, вы также помните, что в случае если у нас есть несколько ошибок валидации, мы решили пойти простым путем и просто возвращать первую из них.

Читать далее

https://habr.com/ru/post/709376/?utm_source=habrahabr&utm_medium=rss&utm_campaign=709376

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Тест – это вещь! F#, тестирование на базе Expecto. Часть вторая

Понедельник, 26 Декабря 2022 г. 11:00 (ссылка)

В прошлой части мы разобрали базис тестового фреймворка Expecto. В этой рассмотрим основные подходы написания тестов в контексте Expecto и постепенно перейдём к обобщённым преимуществам-следствиям концепции “тест-объект”. Часть выводов по ходу статьи могут быть полезны и не F#-истам. Однако, как говорилось в первой части, изначально это был монолитный текст, что был разделён почти механически, и я не берусь оценить усвояемость данного материала в отрыве от первой части.

Читать далее

https://habr.com/ru/post/706594/?utm_source=habrahabr&utm_medium=rss&utm_campaign=706594

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем аппликативные функторы

Пятница, 23 Декабря 2022 г. 12:06 (ссылка)

Аппликативный функтор, возможно, наименее известный брат монады, но он столь же важен и решает похожую проблему. В этом посте мы постараемся разобраться, что он из себя представляет.

Читать далее

https://habr.com/ru/post/707294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=707294

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем аппликативные функторы

Пятница, 23 Декабря 2022 г. 12:06 (ссылка)

Аппликативный функтор, возможно, наименее известный брат монады, но он столь же важен и решает похожую проблему. В этом посте мы постараемся разобраться, что он из себя представляет.

Читать далее

https://habr.com/ru/post/707294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=707294

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Тест – это вещь! F#, тестирование на базе Expecto. Часть первая

Четверг, 22 Декабря 2022 г. 11:15 (ссылка)

Expecto — фреймворк для тестирования, написанный на F# и для F#. Он довольно хорошо известен в рамках F#-сообщества, и у разработчиков, сумевших отгородиться от C# в достаточной степени, используется как платформа для тестов по умолчанию. Новички в F#, а также мимо проходящие C#-еры, как правило, не обращают внимания на данный фреймворк до первого красного теста. А после знакомства впадают в лёгкий аналитический паралич. Ибо то, что со стороны выглядит как ещё один @"{Prefix}Unit" фреймворк для тестирования, на практике оказывается переосмыслением привычных практик.

В данной статье я попробую широкими мазками описать онтологический аппарат Expecto и показать наиболее естественный путь его подчинения. Это не рулбук, а одноразовое введение, которое я предпочёл бы видеть вместо (или до) существующего README.md в официальном репозитории. Также я постараюсь обойтись максимально локальными примерами кода, дабы текст можно было прочитать, не слезая с самоката.

Читать далее

https://habr.com/ru/post/706576/?utm_source=habrahabr&utm_medium=rss&utm_campaign=706576

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Как я сделал самый быстрый в мире файловый сервер

Понедельник, 31 Октября 2022 г. 12:00 (ссылка)



Задача — среди множества файлов найти на диске конкретный и отдать его по HTTP с заголовками «content-encoding», «mime-type» и «content-lenght». И сделать это как можно быстрее — на локальном хосте, чтобы не уткнуться в физические барьеры. Нас интересует скорость ради скорости.



В качестве веб-сервера будем использоваться Kestrel, .NET 7 RC 1, minimal API и F#. Финальная, оптимизированная версия есть и для C#.
Читать дальше →

https://habr.com/ru/post/695808/?utm_source=habrahabr&utm_medium=rss&utm_campaign=695808

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Как я сделал самый быстрый в мире файловый сервер

Понедельник, 31 Октября 2022 г. 12:00 (ссылка)



Задача — среди множества файлов найти на диске конкретный и отдать его по HTTP с заголовками «content-encoding», «mime-type» и «content-lenght». И сделать это как можно быстрее — на локальном хосте, чтобы не уткнуться в физические барьеры. Нас интересует скорость ради скорости.



В качестве веб-сервера будем использоваться Kestrel, .NET 7 RC 1, minimal API и F#. Финальная, оптимизированная версия есть и для C#.
Читать дальше →

https://habr.com/ru/post/695808/?utm_source=habrahabr&utm_medium=rss&utm_campaign=695808

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем функторы

Вторник, 06 Сентября 2022 г. 19:14 (ссылка)

Это перевод статьи из целого цикла постов "Грокаем функциональное программирование" Мэта Торнтона. Я позволил себе немного поменять порядок постов. В оригинале, функторы идут после монад, что мне показалось неверным. Всякая монада - это функтор, но не всякий функтор - это монада. Также я убрал дублирование из поста про монады и добавил необходимые пояснения. Мне нравится практическая направленность материала. Он довольно подробно останавливается на базовых вещах, так что скорее предназначен для тех, кто только знакомится с функциональным программированием.

В этом посте мы постараемся разобраться, что такое функтор собственноручно переизобретая его на рабочем примере.

Читать далее

https://habr.com/ru/post/686768/?utm_source=habrahabr&utm_medium=rss&utm_campaign=686768

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем функторы

Вторник, 06 Сентября 2022 г. 19:14 (ссылка)

Это перевод статьи из целого цикла постов "Грокаем функциональное программирование" Мэта Торнтона. Я позволил себе немного поменять порядок постов. В оригинале, функторы идут после монад, что мне показалось неверным. Всякая монада - это функтор, но не всякий функтор - это монада. Также я убрал дублирование из поста про монады и добавил необходимые пояснения. Мне нравится практическая направленность материала. Он довольно подробно останавливается на базовых вещах, так что скорее предназначен для тех, кто только знакомится с функциональным программированием.

В этом посте мы постараемся разобраться, что такое функтор собственноручно переизобретая его на рабочем примере.

Читать далее

https://habr.com/ru/post/686768/?utm_source=habrahabr&utm_medium=rss&utm_campaign=686768

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем монады императивно

Пятница, 26 Августа 2022 г. 14:48 (ссылка)

В предыдущем посте мы переизобрели Монаду на рабочем примере. У нас получился базовый механизм в виде функции andThen для типа option, но мы еще не достигли нашей конечной цели. Мы надеялись, что получится написать код, так же как если бы нам не нужно было обрабатывать значения option. Мы хотели писать в более "императивном" стиле. В этой части мы увидим как достичь этого при помощи технологии computation expressions языка F#, а также углубим наше понимание Монад.

Читать далее

https://habr.com/ru/post/684820/?utm_source=habrahabr&utm_medium=rss&utm_campaign=684820

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем монады императивно

Пятница, 26 Августа 2022 г. 14:48 (ссылка)

В предыдущем посте мы переизобрели Монаду на рабочем примере. У нас получился базовый механизм в виде функции andThen для типа option, но мы еще не достигли нашей конечной цели. Мы надеялись, что получится написать код, так же как если бы нам не нужно было обрабатывать значения option. Мы хотели писать в более "императивном" стиле. В этой части мы увидим как достичь этого при помощи технологии computation expressions языка F#, а также углубим наше понимание Монад.

Читать далее

https://habr.com/ru/post/684820/?utm_source=habrahabr&utm_medium=rss&utm_campaign=684820

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Discriminated Unions в C#

Вторник, 23 Августа 2022 г. 10:48 (ссылка)

Всем привет. Среди многих интересных концепций, имеющихся в F#, меня привлекли Discriminated Unions. Я задался вопросом, как их реализовать в C#, ведь в нем отсутствует поддержка (синтаксическая) типов объединений, и я решил найти способ их имитации.

Discriminated Unions - тип данных, представляющий собой размеченные объединения, каждый из которых может состоять из собственных типов данных (также именованных).

Идея в том, что мы имеем ограниченное количество вариантов выбора, и каждый вариант может состоять из своего набора данных, никак не связанных с другими, но все варинанты объединены общим подтипом.

Для создания своих Discriminated Unions будем использовать эту мысль

Читать далее

https://habr.com/ru/post/684104/?utm_source=habrahabr&utm_medium=rss&utm_campaign=684104

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Discriminated Unions в C#

Вторник, 23 Августа 2022 г. 10:48 (ссылка)

Всем привет. Среди многих интересных концепций, имеющихся в F#, меня привлекли Discriminated Unions. Я задался вопросом, как их реализовать в C#, ведь в нем отсутствует поддержка (синтаксическая) типов объединений, и я решил найти способ их имитации.

Discriminated Unions - тип данных, представляющий собой размеченные объединения, каждый из которых может состоять из собственных типов данных (также именованных).

Идея в том, что мы имеем ограниченное количество вариантов выбора, и каждый вариант может состоять из своего набора данных, никак не связанных с другими, но все варинанты объединены общим подтипом.

Для создания своих Discriminated Unions будем использовать эту мысль

Читать далее

https://habr.com/ru/post/684104/?utm_source=habrahabr&utm_medium=rss&utm_campaign=684104

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем монады

Суббота, 13 Августа 2022 г. 15:29 (ссылка)

Прим. переводчика: Это перевод первой статьи из целого цикла постов "Грокаем функциональное программирование" Мэта Тронтона. Да, это очередная статья про монады. Но она отличается от всего, что я читал по этой теме ранее. Поэтому мне захотелось перевести ее, чтобы самому внимательно вчитаться, чтобы поделиться с теми, кому трудно воспринимать такой материал на английском или кому она не попалась на глаза, чтобы, в конце концов, просто сохранить, так как сеть штука ненадежная.

Самый распространенный способ объяснить монаду - зайти через теорию категорий. Знать, что монада - это моноид в категории эндофункторов и увлекательно и полезно для общего развития, но слабо помогает в практическом смысле. Второй, равный по популярности прием - прибегнуть к помощи образов, и вот мы уже складываем значения в коробочки и достаем их оттуда (или, вообще кошмар, катимся по железной дороге). Не спорю, образы - хороший способ посмотреть на явление, но тут мы равно удалились и от теории категорий и от практики. Комментарии под такого рода статьями не перестают полниться вопросами: а что нам это дает, жили же без монады как-то?

Автор, подобно лектору по математике, у которого вылетело из головы доказательство теоремы и он доказал ее прямо у доски, ориентируясь на интуитивное представление, как бы хотелось решить задачу, постепенно пробирается от корявого куска кода к лаконичному.

Если бы даже монады не существовало, мы должны бы были ее изобрести, потому что она позволяет писать код чище.


В этом посте мы постараемся разобраться, что такое Монада собственноручно переизобретая ее на рабочем примере.

Читать далее

https://habr.com/ru/post/682340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=682340

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Грокаем монады

Суббота, 13 Августа 2022 г. 15:29 (ссылка)

Прим. переводчика: Это перевод первой статьи из целого цикла постов "Грокаем функциональное программирование" Мэта Тронтона. Да, это очередная статья про монады. Но она отличается от всего, что я читал по этой теме ранее. Поэтому мне захотелось перевести ее, чтобы самому внимательно вчитаться, чтобы поделиться с теми, кому трудно воспринимать такой материал на английском или кому она не попалась на глаза, чтобы, в конце концов, просто сохранить, так как сеть штука ненадежная.

Самый распространенный способ объяснить монаду - зайти через теорию категорий. Знать, что монада - это моноид в категории эндофункторов и увлекательно и полезно для общего развития, но слабо помогает в практическом смысле. Второй, равный по популярности прием - прибегнуть к помощи образов, и вот мы уже складываем значения в коробочки и достаем их оттуда (или, вообще кошмар, катимся по железной дороге). Не спорю, образы - хороший способ посмотреть на явление, но тут мы равно удалились и от теории категорий и от практики. Комментарии под такого рода статьями не перестают полниться вопросами: а что нам это дает, жили же без монады как-то?

Автор, подобно лектору по математике, у которого вылетело из головы доказательство теоремы и он доказал ее прямо у доски, ориентируясь на интуитивное представление, как бы хотелось решить задачу, постепенно пробирается от корявого куска кода к лаконичному.

Если бы даже монады не существовало, мы должны бы были ее изобрести, потому что она позволяет писать код чище.


В этом посте мы постараемся разобраться, что такое Монада собственноручно переизобретая ее на рабочем примере.

Читать далее

https://habr.com/ru/post/682340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=682340

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Цитирование в языках программирования

Воскресенье, 05 Июня 2022 г. 22:21 (ссылка)

Задачу я встретил, решая упражнения из книги Структура и Интерпретация Компьютерных Программ).

Раздел 2.3 посвящён цитированию в LISP и символическим вычислениям.

Обычные — несимволические — вычисления сводятся к расчётам с помощью арифметических операций. Если я попрошу вас вычислить производную функции x^2в точке x=17, вы можете сделать это по формуле при каком-нибудь не очень большом значении dx.

Подробнее о символических вычислениях

https://habr.com/ru/post/669682/?utm_source=habrahabr&utm_medium=rss&utm_campaign=669682

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<f# - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda