Как стать автором
Обновить
8

F# *

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

Сначала показывать
Порог рейтинга
Уровень сложности

Как я подружил Unity3D и F#

Время на прочтение 30 мин
Количество просмотров 20K

В последнее время я стал все больше и больше интересоваться функциональным программированием, и при выборе языка предо мною пал выбор среди двух очень понравившихся мне языков — Haskell и F#.
В F# меня соблазнило то, что его можно компилировать в MSIL сборки, что обеспечивает возможность использования библиотек классов F# в других языках Microsoft .Net, а также то, что он и сам может их использовать. Ко всему прочему, я ещё и начинающий разработчик Unity3D, и мне в голову пришла мысль: если компилируется в MSIL, то может можно использовать F# скрипты в Unity? Гугление дало ответ: по-человечески нельзя. Можно создать библиотеку классов, поставить в проекте ссылки на библиотеку UnityEngine.dll, компилировать и импортировать как ассет, после чего добавлять компоненты Mono-behaviour напрямую из библиотеки, но это не слишком удобно, согласитесь. Однако, пройдя гугл, Reflection и справку по Unity, мне все таки удалось приблизить(но не повторить в точности) работу с F# скриптами внутри редактора к тому виду, в котором производится работа со скриптами на встроенных языках. Подробности — под хабракатом.


Показать подробно
Всего голосов 55: ↑45 и ↓10 +35
Комментарии 6

F# Хвостовая рекурсия. Подводные грабли. Часть 1

Время на прочтение 4 мин
Количество просмотров 12K

Винни Пух: Ой, что это случилось с твоим хвостом?
Иа: А что с ним могло случится?
Винни Пух: Его нет.
Иа: Ты не ошибся?
Винни Пух: Хвост или есть или нет совсем! Тут нельзя ошибиться.
Иа: А что же тогда там есть?
Винни Пух: Ничего!


У нас в проекте, в одном из серверных компонентов, после очередного рефакторинга начала течь память. Казалось бы .NET, F#, менеджед код, сборка мусора, все дела, но память, куда-то утекала. Ценой бессонных ночей и попорченных нервов, источник утечки был найден. Оказалось что проблема вызвана куском кода, который был, чуть ли не один к одному скопирован из учебника по F#.

Все дело было в хвостовой рекурсии, вернее, как оказалось в ее отсутствии в неожиданных местах.
Читать дальше →
Всего голосов 43: ↑39 и ↓4 +35
Комментарии 68

Machete — скриптовая среда для .Net

Время на прочтение 1 мин
Количество просмотров 1.1K
В попытке побороть моё стремление к совершенству, я решил открыть исходники моего долгосрочного проекта Machete для всеобщего просмотра. Machete — это мой собственный диалект стандарта ECMAScript 5 или, как его чаще называют, JavaScript.
Читать дальше →
Всего голосов 42: ↑36 и ↓6 +30
Комментарии 7

10 «однострочников», которые произведут впечатление на ваших друзей

Время на прочтение 13 мин
Количество просмотров 42K
За последнюю неделю появилось несколько топиков с названием «10 однострочников на <MY_LANGUAGE>, которые произведут впечатление на ваших друзей», которые содержат однострочное решение нескольких простых задач, демонстрирующее достоинства и «крутость» любимого языка программирования автора. Я решил перевести их и для сравнения собрать в одном топике. Вся волна началась (вроде как) со Scala.
Итак, поехали!
Читать дальше →
Всего голосов 181: ↑154 и ↓27 +127
Комментарии 147

Истории

Паттерны Command и Strategy с точки зрения функционального программирования

Время на прочтение 9 мин
Количество просмотров 13K
В результате изучения функционального программирования в моей голове появились некоторые мысли, которыми я хочу с вами поделиться.
Читать дальше →
Всего голосов 54: ↑48 и ↓6 +42
Комментарии 94

Введение в F#, the blue pill

Время на прочтение 5 мин
Количество просмотров 12K
[Предыдущий пост]

Введение


image
Вот и ожидаемое, или не очень, продолжение. Сегодня мы проглотим синюю пилюлю, гордо олицетворяющую FP (functional programming), и погрузимся в функциональную часть F# еще глубже. Поговорим о функциях, рекурсии, pattern matching'е и еще о нескольких интересных вещах. Интересно? Тогда глотаем таблетку и начинаем погружение.

Читать дальше →
Всего голосов 61: ↑45 и ↓16 +29
Комментарии 18

Введение в F#, или полезное о бесполезном

Время на прочтение 3 мин
Количество просмотров 24K

Вступление



А зачем оно мне?

image

А почему бы и нет? К примеру, для общего развития, или просто для интереса, а впоследствии, может быть, для того, чтобы убедиться, что F# — не просто язык для ознакомления.
Читать дальше →
Всего голосов 78: ↑62 и ↓16 +46
Комментарии 15

Вдогонку Visual Studio 2010 SP1, новые инструменты для разработчиков

Время на прочтение 2 мин
Количество просмотров 8.8K

image



Как вы, наверняка, знаете недавно был выпущен пакет обновления для Visual Studio 2010. Спустя некоторое время стали появляться дополнительные инструменты, про которые стоит рассказать отдельно.


Читать дальше →
Всего голосов 43: ↑31 и ↓12 +19
Комментарии 3

F#: Во что превращается ваш код после компиляции

Время на прочтение 4 мин
Количество просмотров 2.2K
Язык F# появился в стандартной поставке VisualStudio совсем недавно, а именно с версии 2010 (на данный момент самой что ни на есть актуальной). Естественно, и все это прекрасно знают, язык функционирует на основе CLR — весь ваш код будет скомпилирован в MS IL как и любой другой язык .NET семейства.

Давайте на примере часто используемой и полезной техники «меморизация» посмотрим во что превращает ваш код компилятор. Для наглядности я буду писать сам код на F# и декомпилировать его в C#.
Читать дальше →
Всего голосов 51: ↑44 и ↓7 +37
Комментарии 22

tryfsharp.org — Microsoft выпустил бета версию сайта для онлайн изучения F#

Время на прочтение 1 мин
Количество просмотров 1.5K
На сайте есть написанный на Silverlight редактор кода c подсветкой синтаксиса и небольшой учебник по F#



Читать дальше →
Всего голосов 92: ↑80 и ↓12 +68
Комментарии 33

Книга Криса Смита «Программирование на языке F#»

Время на прочтение 2 мин
Количество просмотров 4.5K
image

Любая методология разработки, инструмент, технология или язык программирования привлекает к себе внимание по разным причинам. Это может быть нечто инновационное и тогда по прошествию десятка или двух лет (!), до него таки дотянутся руки всего остального компьютерного сообщества. Так было практически со всеми идеями, которым пришлось пройти длительный путь от конференций гиков до признания широкой общественностью. Другим способом ворваться в «мейнстрим» является поддержка уже известного вендора, например такого, как компания … Майкрософт. Большинство людей инерционны и не будут вкладывать свои силы в «нонейм» инструменты, пока не удостоверятся, что их капиталовложение будет востребовано. Если же инструментом занимается подобный вендор, то риск изучить что-то, что не пригодится в будущем, очень не велик.
Читать дальше →
Всего голосов 42: ↑38 и ↓4 +34
Комментарии 3

Опубликованы исходные коды F# 2.0 под лицензией Apache 2.0

Время на прочтение 1 мин
Количество просмотров 840

Компания Microsoft опубликовала сегодня исходные коды компилятора F# 2.0 и набора других инструментов для этого языка под названием F# PowerPack.


Читать дальше →
Всего голосов 44: ↑36 и ↓8 +28
Комментарии 12

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Что нам готовит PDC10?

Время на прочтение 2 мин
Количество просмотров 539

image



PDC10 — крупнейшая конференция Microsoft начнется уже через неделю 28 октября. Самое время строить догадки и предположения о том, что нового может представить Microsoft для разработчиков.



Пищу для домыслов может дать недавнее обновление программы конференции на сайте http://player.microsoftpdc.com/. В ней появились следующие интересные позиции:



image  image



Не остается сомнений, что на PDC расскажут про следующие версии C#, Visual Basic и F#. Пока не ясно будет ли обновление языков проходить вместе с обновлением самой платформы .NET. Я склонен считать, что обновления CLR не будет, нововведения в языки будут введены под индексом .NET 4.1/4.5, но не 5.0.

Читать дальше →
Всего голосов 47: ↑34 и ↓13 +21
Комментарии 26

[Перевод] Я все еще не просек F#

Время на прочтение 2 мин
Количество просмотров 2.1K
Я думаю, что Microsoft пытается продать нам F# как что-то новое и крутое, но у меня серьезные проблемы с пониманием приемуществ F# перед C#.

Читать дальше →
Всего голосов 33: ↑17 и ↓16 +1
Комментарии 30

Асинхронное программирование — цепочки вызовов

Время на прочтение 6 мин
Количество просмотров 5.4K

Когда в коде фигурирует пара вызовов BeginXxx()/EndXxx(), это приемлимо. Но что если алгоритм требует несколько таких вызовов подряд, то количество методов (или анонимных делегатов) преумножится и код станет менее читабельным. К счастью, эта проблема решена как в F# так и в C#.



Читать дальше →
Всего голосов 48: ↑40 и ↓8 +32
Комментарии 15

Создание DSL на языке F#

Время на прочтение 9 мин
Количество просмотров 5.8K

Хочу представить сообществу перевод моей статьи на CodeProject, в которой я описываю процесс создания DSLей с использованием языка F#.


Читать дальше →
Всего голосов 90: ↑51 и ↓39 +12
Комментарии 35

Катаморфизм в F#

Время на прочтение 9 мин
Количество просмотров 6.8K

Введение


Упомяну сразу, данная статья написана по мотивам целой серии постов в отличном блоге Inside F#. Тем не менее она не является переводом в чистом виде, а скорее вольным изложением, чтобы доступным языком объяснить — что же за зверь такой, катаморфизм, и с чем его едят. Слово это думаю не очень на слуху, чего стоит хотя бы тот факт, что статьи по нему нет в русской википедии (и вообще ни в одной национальной, кроме почему-то голландской. Наверно ФП как-то соответсвует духу травокурения)
Итак, строго говоря, катаморфизм в функциональном программировании — это обобщение свертки списков, которые (как я уже рассказывал) являются специфическим типом размеченного объединения, на произвольные размеченные объединения.
Читать дальше →
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 24

Три парадигмы F#

Время на прочтение 16 мин
Количество просмотров 21K

Введение


Все, кто так или иначе связан с .NET программированием знает, что уже в следующую версию Visual Studio будет встроен новый язык программирования — F#, который позиционируется как функциональный, чем сразу, так уж повелось, вызывает подозрения в бесполезности. Для того, чтобы показать, что F# — куда больше, чем просто ФЯП (хотя и просто ФЯП — это очень немало), я и написал все нижеследующее.
Эта статья, несмотря на изрядную длину, не претендует на то, чтобы полностью описать всю функциональность языка. Это всего лишь краткий обзор, призванный продемонстрировать широкий спектр возможностей, каждая из которых заслуживает отдельной статьи, и даже не одной.
Кроме того, написав такой пространный пост, я хотел сделать задел на будущее, чтобы в дальнейшем мне не отвлекаться на незначительные вещи базового уровня. Конечно, сразу головой в пруд — это действенно, но и какой-никакой фундамент не помешает.
А уже в следующий раз я приведу пример на волнующую тему пригодности F# для обычной профессиональной программистской деятельности.
И еще раз, под катом действительно МНОГО текста. И не говорите потом, что я вас не предупреждал. =)
Читать дальше →
Всего голосов 43: ↑40 и ↓3 +37
Комментарии 68

Влюбляемся в F#: Доза 2: Строим фрактальное изображение, или множество Мандельброта своими руками

Время на прочтение 3 мин
Количество просмотров 5.7K

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


Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Комментарии 18

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