Как стать автором
Обновить
0.4
Рейтинг

F#

Язык из семейства языков .NET Framework

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Основы функционального программирования на Python

PythonПрограммированиеФункциональное программированиеF#Clojure
Tutorial

Этот пост служит для того, чтобы освежить в памяти, а некоторых познакомить с базовыми возможностями функционального программирования на языке Python. Материал поста разбит на 5 частей:

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры11.2K
Комментарии 39

Новости

Показать еще

Функциональное ядро в виде конвейера на Python

PythonПрограммированиеФункциональное программированиеF#Clojure
Recovery mode

Главная задача этого поста – показать один мало применяемый на языке Python архитектурный шаблон под названием «функциональное ядро - императивная оболочка», в котором функциональный код концентрируется внутри, а императивный код выносится наружу в попытке свести на нет недостатки каждого из них. Известно, что функциональные языки слабы при взаимодействии с «реальным миром», в частности с вводом данных пользователем, взаимодействием с графическим интерфейсом или другими операциями ввода-вывода. В рамках такого подхода весь императивный код выталкивается наружу, и внутри остается только функционально-ориентированный.

Читать далее
Всего голосов 9: ↑1 и ↓8 -7
Просмотры4K
Комментарии 78

Две недели с F#

RUVDS.comПрограммированиеF#
А вы когда-нибудь записывали свои впечатления от изучения нового языка? Записывали все, что вам не понравилось, чтобы через пару недель изучения понять, насколько недальновидными и тупыми они были? 



На днях я понял F#, и попытаюсь описать словами мысль, стоящую за языком. 
Читать дальше →
Всего голосов 57: ↑45 и ↓12 +33
Просмотры10.1K
Комментарии 21

Что нового в AngouriMath 1.2?

.NETАлгоритмыC#МатематикаF#

Спустя 210 дней, 600 коммитов, десятки дебажных ночей и тысячи сообщений в обсуждениях проекта, я таки выпустил релиз AngouriMath 1.2.

Это небольшая опен-сорсная библиотека символьной алгебры для C# и F#, но вдруг кому-нибудь интересно?

Читать далее
Всего голосов 24: ↑24 и ↓0 +24
Просмотры1.7K
Комментарии 2

Работаем с notebook в VS Code с помощью расширения «dotnet interactive»

.NETPowerShellVisual StudioC#F#
Из песочницы
Tutorial

Сегодня я хочу рассказать вам о таком замечательном инструменте как "dotnet interactive". Я покажу на своём примере как и для чего я начал его использовать, и вкратце опишу с чего начать.

Читать далее
Рейтинг 0
Просмотры5.3K
Комментарии 0

Букварь по F# для любопытствующих C#-разработчиков

.NETC#F#
Перевод

Предисловие


Мой переход на F# в качестве излюбленного языка был слегка усеян препятствиями. Примерно через десять лет почти постоянного использования C# у меня пробудилось любопытство, когда я услышал об этом другом #-языке. Моя первая реакция была той, которую с тех пор видел у других C#-разработчиков — отрицание, — C# является хорошим языком, и мне с ним комфортно, так зачем тратить силы на изучение другого? Но любопытство осталось — и, по крайней мере, несколько раз выделил вечер, чтобы прочитать базовый вводный пост и попытаться написать каких-нибудь ката на F#. Это не прижилось, потому что я просто чувствовал себя потерянным и не мог воплотить свой опыт использования C# в ощущение даже отдаленного комфорта с F#. Достаточно легко опустить фигурные скобки, немного замяться, чтобы не забыть let вместо var — но как сделать то, что я хотел?


Тогда я этого не осознавал, но, на мой взгляд, наблюдал потенциальный недостаток в том, как F#-разработчики говорят, описывают и представляют свой язык внешнему миру. Существует обширная база материалов обо всех возможностях и функциональности F#: Algebraic Data Types, Exhaustive Matching, Type Inference и т.д. Есть много статей, посвященных тому, как решать широкий спектр задач с помощью F#. Но, как мне кажется, не хватает чего-то вроде следующего: некоторых указаний о том, как взять то, что вам уже удобно в C#, и перевести их на F#. Так что мне интересно, можем ли мы как-то закрыть этот недостаток.

Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры7.2K
Комментарии 13

Пример прикладного проекта на F#

.NETF#

Язык F# уступает в популярности C#. Вместе с тем, во многом благодаря сообществу, фаршик стал реальной альтернативой для прикладных проектов. В статье описаны ингредиенты бэкенда, фронтенда, тестов, сборки и инфраструктуры проекта, полностью написанного на F#. Исходный код прилагается.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры4.2K
Комментарии 6

Jupyter для .NET. «Как в питоне»

.NETC#МатематикаF#
Несколько месяцев назад Microsoft рассказали о Jupyter в .NET. Но активности по этому топику очень мало, а ведь тема очень интересная. Но что такое прикольное придумать? Я решил сделать удобный вывод класса Entity из библиотеки символьной алгебры:



Выглядит круче, чем в питоне. Делается просто, доставляет массу удовольствия. Приглашаю под кат!
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Просмотры6.8K
Комментарии 11

Асинхронность в C# и F#. Подводные камни асинхронности в C #

ПрограммированиеC#F#
Из песочницы
Привет, Хабр! Представляю вашему вниманию перевод статьи «Async in C# and F# Asynchronous gotchas in C#» автора Tomas Petricek.

Еще в феврале я присутствовал на ежегодном саммите MVP — мероприятии, организованном Microsoft для MVP. Я воспользовался этой возможностью, чтобы посетить также Бостон и Нью-Йорк, сделать два выступления про F# и записать лекцию Channel 9 о провайдерах типов. Несмотря на другие мероприятия (такие как посещения пабов, общение с другими людьми про F# и долгий сон по утрам), мне также удалось провести несколько обсуждений.
Читать дальше →
Всего голосов 21: ↑18 и ↓3 +15
Просмотры7.8K
Комментарии 35

Представляем .NET 5.0 Preview 6

MicrosoftПрограммирование.NETC#F#
Перевод
На прошлой неделе мы выпустили .NET 5.0 Preview 6. Версия содержит небольшой набор новых функций и улучшений производительности. Пост .NET 5.0 Preview 4 посвящен тому, что мы планируем выпустить в .NET 5.0. Большинство функций в настоящее время уже реализовано, но некоторые еще не в своем окончательном состоянии. Мы ожидаем, что релиз будет полнофункциональным с Preview 8.

Вы можете скачать .NET 5.0 Preview 6, для Windows, macOS и Linux:


ASP.NET Core и EF Core также были выпущены на прошлой неделе. Примечание: EF Core 5.0 не будет поддерживать .NET Standard 2.0 или .NET Framework. Читайте пост о выпуске EF Core чтобы узнать больше.

Вам нужно использовать Visual Studio 2019 16.7 для работы с .NET 5.0. .NET 5.0 теперь поддерживается в Visual Studio for Mac. Установите последнюю версию расширения C# для использования .NET 5.0 с Visual Studio Code.

Заметки:


Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры14.7K
Комментарии 9

Основатель F# сообщества: «ООП и ФП головного мозга должны умереть»// Мы обречены #7

Карьера в IT-индустрииF#Интервью

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

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

Спустя полтора года после статьи я позвал Романа Мельникова на подкаст и обсудил, как все обстоит сейчас.

Читать дальше →
Всего голосов 29: ↑25 и ↓4 +21
Просмотры12.2K
Комментарии 107

F#, увеличение контраста изображения путем выравнивания гистограмм

АлгоритмыF#

Операция выравнивания гистограмм (увеличение контраста) часто используется для увеличения качества изображения. В рамках этой статьи будет рассмотрено понятие гистограммы, теория алгоритма для ее выравнивания, практические примеры работы этого алгоритма. Для облегчения обработки изображений, мы будем использовать библиотеку OpenCV. Также, сделаем сравнительный анализ результатов работы нашего алгоритма и алгоритма, который уже встроен в OpenCV.


Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры2K
Комментарии 0

F#, морфология бинарных изображений

АлгоритмыФункциональное программированиеF#

Введение


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


В статье будут рассмотрены основные операции математической (бинарной) морфологии в контексте F#. А также, в конце статьи я приведу пример анализа полученного результата, который может быть использован в алгоритмах машинного зрения.

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры1.3K
Комментарии 0

F#, алгоритм маркировки связных компонентов изображения

АлгоритмыФункциональное программированиеF#
🔥 Технотекст 2020
Поиск и маркировка связных компонентов в бинарных изображениях — один из базовых алгоритмов анализа и обработки изображений. В частности, этот алгоритм может быть использован в машинной зрении для поиска и подсчета единых структур в изображении, с последующих их анализом.

В рамках этой статьи будут рассмотрены два алгоритма для маркировки связных компонентов, показана их реализация на языке программирования F#. А также, произведен сравнительный анализ алгоритмов, поиск слабых мест. Исходный материал для реализации алгоритмов был взят из книги “Компьютерное зрение” (авторы Л. Шапиро, Дж. Стокман. перевод с английского А. А. Богуславского под редакцией С. М. Соколова).
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры1.6K
Комментарии 0

Функциональное программирование на примере работы с матрицами из теории линейной алгебры

Функциональное программированиеF#
Из песочницы

Вступление


В основе работы с матрицами (в данной статье мы будем рассматривать только двумерные матрицы) лежит мощная математическая теория из области линейной алгебры. Одно определение или действие следует из другого, одна функция вызывает другую. Поэтому для программной реализации функционала математических операций над матрицами функциональные языки подходят очень хорошо. В рамках данной статьи мы рассмотрим конкретные примеры на языке F# и дадим подробные комментарии, как это работает. Так как F# входит в семейство .NET, то полученный функционал можно без каким либо проблем использовать в других императивный языках, например C#.

Определение матрицы и реализация на F#


Матрицы являются базовой и важнейшей частью линейной алгебры. Матрицы часто используются в программировании, например в 3D-моделировании или гейм-девелопинге. Разумеется, велосипед уже давно изобретен и необходимые фреймворки для работы с матрицами уже готовы, и их можно и нужно использовать. Данная статья не ставит своей целью изобретение нового фреймворка, но показывает реализацию базовых математических операций для работы с матрицами в функциональном стиле с использованием языка программирования F#. По мере рассмотрения материала мы будем обращаться к математической теории матриц и смотреть, как ее можно реализовать в коде.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры6.2K
Комментарии 1

.NET Interactive уже здесь! | .NET Notebooks Preview 2

MicrosoftПрограммирование.NETC#F#
Перевод


В ноябре 2019 мы анонсировали поодержку .NET для Jupyter notebooks с доступностью C# и F#. Сегодня мы рады объявить о выпуске Preview 2 .NET Notebook. В этой статье вы можете найти все основные новые функции этого выпуска. Присоединяйтесь!
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры7K
Комментарии 2

Документация .NET: что новенького за январь

Microsoft.NETC#F#Visual Basic for Applications
Перевод

Добро пожаловать статью о новой документации по .NET за январь 2020 года. В этой статье перечислены некоторые основные изменения в документации за этот период. Присоединяйтесь и изучайте новые статьи!
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры6K
Комментарии 7

Статическая типизация не обязательно требует церемоний

JavaScriptПрограммированиеСовершенный кодC#F#
Перевод

Примечание переводчика: в текущий момент я подготавливаю материалы для обещанной статьи по монадам. К сожалению, это занимает довольно много времени, не говоря о том, что я всё же должен заниматься основной работой и уделять время семье, но процесс идёт. А пока представляю вам перевод небольшой свежей заметки от замечательного товарища Mark Seemann'а, которая мне показалась любопытной.


Я часто становлюсь участником длительных и жарких дебатов на тему статической типизации против динамической. Сам я определенно отношу себя к сторонникам статической типизации, но эта статья не о достоинствах статической типизации. Цель статьи — устранить распространённое заблуждение насчет статически типизированных языков.


Церемонность


Люди, которые предпочитают динамически типизированные языки статически типизированным, часто подчеркивают тот факт, что отсутствие церемонности делает их продуктивнее. Это звучит логично, однако, это ложная дихотомия.


Церемония — это то, что вы делаете до того, как начнете делать то, что вы действительно собирались сделать.

Venkat Subramaniam

Динамически типизированные языки производят такое впечатление, что им не требуются особые церемонии, но отсюда нельзя сделать вывод что статически типизированные языки их требуют. К сожалению, все мейнстримные статически типизированные языки относятся к одной и той же семье, и они требуют церемонности. Я думаю, что люди экстраполируют то, что они о них знают, ложно заключая что все статически типизированные языки обязательно идут в комплекте с оверхедом церемонности.


Это привело меня к мысли о том, что существует злосчастная Зона Церемонности:



Конечно же, эта диаграмма всего лишь упрощение, но я надеюсь, что она демонстрирует суть. C++, Java и C♯ — языки, которые требуют церемонности. Справа от них находятся языки, которые мы могли бы назвать транс-церемониальными, включая F♯ и Haskell.

Читать дальше →
Всего голосов 59: ↑51 и ↓8 +43
Просмотры17.6K
Комментарии 393

.NET Core с блокнотами Jupyter — Preview 1

MicrosoftПрограммирование.NETC#F#
Перевод
Когда вы думаете о блокнотах Jupyter, на ум, вероятно, приходит код Python, R, Julia или Scala, а не .NET. Сегодня мы рады сообщить, что вы можете писать .NET-код в Jupyter Notebooks.

Try .NET развился, чтобы поддерживать больше интерактивных возможностей в Интернете с помощью сниппетов исполняемого кода, генератора интерактивной документации для .NET Core с глобальным инструментом dotnet try. Ну а теперь .NET доступен в Jupyter Notebooks.

Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры6.8K
Комментарии 6

Как я пришел к формальной спецификации RISC-V процессора на F#

Анализ и проектирование систем.NETФункциональное программированиеF#Процессоры

Томными зимними вечерами, когда солнце лениво пробегало сквозь пелену дней — я нашел в себе силы заняться реализацией давней мечты: разобраться как же устроены процессоры. Эта мечта привела меня к написанию формальной спецификации RISC-V процессора. Проект на Github


image

Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Просмотры6.2K
Комментарии 10

Вклад авторов