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

Записи конференции Lang.NEXT 2012 для тех, кто интересуется языками программирования

Время на прочтение 2 мин
Количество просмотров 9.6K
Блог компании Microsoft Разработка веб-сайтов *Программирование *


В начале апреля на базе кампуса Microsoft в Рэдмонде прошла специализированная индустриальная конференция, посвященная языкам программирования — Lang.NEXT 2012. В рамках конференции своими наработками и результатами исследований поделились эксперты известных корпораций (например, Microsoft, Google, Facebook, Oracle) и ведущих университетов (включая MIT, Stanford, Berkeley).

Для всех энтузиастов мира программирования на Channel 9 доступны записи и презентации выступлений.
Читать дальше →
Всего голосов 33: ↑25 и ↓8 +17
Комментарии 6

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

Время на прочтение 4 мин
Количество просмотров 11K
Разработка веб-сайтов *Программирование *.NET *F# *

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


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

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

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

Время на прочтение 30 мин
Количество просмотров 20K
.NET *Компиляторы *Unity *F# *
Recovery mode
Из песочницы

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


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

Курс «Введение в финансовую инженерию»

Время на прочтение 2 мин
Количество просмотров 19K
Блог компании Хекслет Математика *
В онлайн-университете Хекслет вслед за первым курсом стартовал новый – Введение в финансовую инженерию.



Финaнcoвaя инжeнepия – cpaвнитeльнo нoвый тepмин, и являeтcя oдним из вoзмoжныx пepeвoдoв aнглийcкoгo тepминa «quаntitаtivе finаnсе». Дeйcтвитeльнo, «инжeнepия» – лучшee cлoвo для oблacти знaний, кoтopaя зaтpaгивaeт финaнcoвую мaтeмaтику и пpoгpaммиpoвaниe.

B этoм куpce зaтpoнуты тpи тecнo cвязaнныe тeмы:

  • Пpинципы функциoниpoвaния финaнcoвыx pынкoв – eгo учacтники, мexaнизмы взaимoдeйcтвия, инcтpумeнты и тexнoлoгии paбoты.
  • Финaнcoвaя мaтeмaтикa – мeтoды пpимeнeния мaтeмaтики в финaнcoвыx pacчeтax.
  • Пpoгpaммиpoвaниe – кaк пиcaть пpoгpaммнoe oбecпeчeниe, кoтopoe умeeт paбoтaть нa финaнcoвыx pынкax.


Записаться на курс / Посмотреть лекции


Читать дальше →
Всего голосов 41: ↑34 и ↓7 +27
Комментарии 9

Анонс школы функционального программирования в рамках DevCon 2013

Время на прочтение 3 мин
Количество просмотров 6.6K
Блог компании Microsoft Разработка веб-сайтов *Функциональное программирование *
image

Уважаемые разработчики и специалисты по разработке ПО! От лица команды конференции DevCon 2013 я с удовольствием анонсирую в рамках конференции проведение “Школы функционального программирования”.

Не знакомы с функциональным программированием, но всегда хотели набраться знаний? Знакомы, но хотите углубить знания? Знаете хорошо и вам интересен хардкор? Для всех для вас на конференции пройдет школа функционального программирования, в рамках которой, лучшие эксперты страны прочитают ряд лекций по функциональному программированию от самых азов до глубоких методов и приемов.

Цель школы


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

В рамках Школы функционального программирования участники конференции смогут:

  • Познакомиться с парадигмой функционального программирования и понять, как можно программировать «по другому», без переменных, оператора присваивания и побочных эффектов
  • Оценить преимущества языков программирования (F#, Haskell и других) для решения задач параллельного, асинхронного, облачного и веб-программирования и для обработки больших распределенных данных
  • Поговорить о развитой системе типизации в функциональных языках и об использовании функционального подхода в программировании на C#

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

Успешно сдавшие выпускной экзамен получат отличительные знаки об окончании школы и возможность участвовать в итоговой чайной церемонии.
информация о лекторах, лекциях и конференции...
Всего голосов 31: ↑21 и ↓10 +11
Комментарии 2

Жизнь Конвея на F# + OpenGL

Время на прочтение 5 мин
Количество просмотров 6K
.NET *F# *
Из песочницы

Почему F#?



Просто потому что он мне нравится. Решив пару десятков задач на projecteuler я решил найти более практическое применение знаниям и написать нечто не сложное, но осязаемое.

Кому интересно — добро пожаловать под кат.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 15

Неизменяемая очередь на F#

Время на прочтение 4 мин
Количество просмотров 7.5K
.NET *Функциональное программирование *F# *

Введение


Прочитав недавно статью про список на Haskell, решил тоже немного рассказать о реализации базовых структур на ФЯП (F#). Статья не несёт практической ценности, поскольку готовых реализаций полно в интернете. Цель статьи — рассказать о том, как можно реализовать неизменяемую очередь на F# и как она работает.
Для начала немного терминологии.
F# — это язык программирования из семейства .NET, который, помимо объектно-ориентированного и императивного подходов, реализует функциональный подход в программировании.
Неизменяемые объекты – это такие объекты, которые будучи созданными один раз, в дальнейшем не могут быть изменены. Например, в C# есть такой тип данных, как string, экземпляры которого являются неизменяемыми. Добавляя символ в строку, вы получаете новую строку и имеете неизменной старую. Подробнее тут.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Комментарии 4

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

Время на прочтение 8 мин
Количество просмотров 43K
Функциональное программирование *
Перевод
От переводчика
Это вольный перевод статьи о том, почему люди боятся функциональных языков, присутствует ирония и юмор, для тех кто может и любит читать на английском оригинал здесь.

Про автора

Я разработчик и архитектор британской не софтверной компании. Имею 20 летний опыт в различных областях от высоко-уровневых UX/HCI до низко-уровневых реализаций баз данных.
Несмотря на то что я использую C# в своей повседневной работе, я писал промышленный код на многих языках, мои любимые Smalltalk, Python и совсем недавно F# (поэтому я и создал этот сайт).


Разглагольствования по поводу того чего я не понимаю


Вам надоела вся эта шумиха вокруг функциональных языков? Мне тоже! Я выскажу по этому поводу несколько причин почему разумные люди, такие как мы с вами, должны держаться подальше от этого.

Немного поясню: когда я говорю «статически типизированный функциональный язык программирования», я подразумеваю языки, которые поддерживают вывод типов по-умолчанию и прочее. На практике это означает Haskell и семейство языков ML (включая OCaml и F#).
Читать дальше →
Всего голосов 120: ↑95 и ↓25 +70
Комментарии 50

Метод генерации тестовых заданий на основе деревьев И/ИЛИ и его программная реализация

Время на прочтение 6 мин
Количество просмотров 10K
Программирование *Алгоритмы *Функциональное программирование *
Первый мой топик на Хабре будет посвящен моим научным исследованиям, которые связаны с методами построения алгоритмов генерации тестовых заданий для организации контроля знаний обучаемых.

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

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

Подробности
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 7

Онлайн компилятор для ASP.Net MVC

Время на прочтение 2 мин
Количество просмотров 14K
Разработка веб-сайтов *Программирование *.NET *
Мы давно уже не писали о новостях нашего проекта.
Вот список новых возможностей которые могут быть интересны .Net разработчикам:
  • Мы добавили полноценную поддержку F# (фидл)
  • Поддержка NuGet пакетов
  • Widget
  • Chrome Extension
  • Появилась возможность использовать полноценный ASP.Net MVC

И если с первым нововведением более менее понятно, то остальные могут быть более интересными
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 5

Разработка приложения на Android с помощью Xamarin и F#

Время на прочтение 10 мин
Количество просмотров 16K
Mono и Moonlight *Разработка под Android *Функциональное программирование *F# *Xamarin *
image

Привет!

Недавно Xamarin объявил конкурс на разработку мобильного приложения на функциональном языке программирования F#.
Это было связано с выходом Xamarin 3 с полной поддержкой F#. Я решил отвлечься от повседневных задач и попробовать поучаствовать, тем более что я давно смотрю на F#, но шансов познакомиться с ним подробнее у меня не было. Для участия в соревновании я решил разработать приложение идея которого была предложена кем-то в процессе обсуждения внезапного взлета мобильного приложения Yo. Вот цитата:
Идея для стартапа, рабочее название «ты где?».

Смысл прост, девушка устанавливает приложение, указывает в нем номер своего молодого человека и после этого появляется большая гнопка отправки сообщения «ты где?» #startup #idea

Почему бы и нет?

Примечание
Я писал этот пост параллельно работая над приложением. Поэтому он большой и местами не очень логичный.

Читать дальше →
Всего голосов 24: ↑17 и ↓7 +10
Комментарии 8

Концепция Message Passing. Агенты и актёры

Время на прочтение 5 мин
Количество просмотров 7.5K
Блог компании ХостТрекер .NET *Функциональное программирование *
Данная статься начитает серию публикаций о технологиях, которые мы используем и изучаем для разработки сервиса мониторинга веб сайтов HostTracker. Надеемся, наш опыт окажется полезным.

Message passing является одной из популярных концепций параллельного программирования. Она часто используется при создании сложных распределенных систем с высокой степенью параллелизма. Реализация этой концепции представлена в языках программирования в качестве актёров (actor) или агентов (agent).


Расспределенные агенты HostTracker. Быстрая проверка с http://updownchecker.com

Читать дальше →
Всего голосов 26: ↑18 и ↓8 +10
Комментарии 26

Message Passing в F#. Применение MailboxProcessor

Время на прочтение 8 мин
Количество просмотров 4K
Блог компании ХостТрекер .NET *Функциональное программирование *F# *
Данная статься продолжает серию публикаций о технологиях, которые мы используем для разработки сервиса проверки доступности веб сайтов HostTracker.
Сегодня речь пойдет о…

MailboxProcessor


image

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

Реализация стека, очереди и дека на языке F# в функциональном стиле

Время на прочтение 5 мин
Количество просмотров 5.1K
Функциональное программирование *F# *
Туториал
Недавно я познакомился с концепцией функционального программирования. Возможно, в этой статье я изобретаю велосипед, однако я считаю, что эти действия являются весьма полезными для обучения, а также для более чёткого понимания функционального программирования.

Давайте попробуем реализовать основные типы данных: стек, очередь и дек — на языке F#, по возможности используя чистые функции. Естественно, они будут основаны на списках.

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

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

Стек


Прежде всего начнём со стека. В F# основным типом данных для хранения нескольких однотипных элементов является не массив, а список. Если перед нами стоит задача превратить список в стек, то какие функции нам понадобятся?

Во-первых, нам необходима функция для добавления элемента в вершину стека. Эта функция традиционно называется push. Однако эта функция нас особо не интересует, поскольку она очень просто реализуется:

let push stk el = el :: stk


Довольно простая функция, которая имеет тип 'a list -> 'a -> 'a list, однако не все дальнейшие функции позволят обращаться с собой таким простым способом.

Куда интереснее дело обстоит с выталкиванием вершины из стека, особенно, если мы ограничиваем себя чистыми функциями. Как же нам справиться с этой задачей?

Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Комментарии 11

F# адвент календарь по английски на 2014

Время на прочтение 1 мин
Количество просмотров 3.5K
.NET *Функциональное программирование *F# *
Перевод
У наших друзей из Японии есть замечательное событие, называемое F#-ский адвентский календарь. Каждый день, начиная с первого декабря по 31 декабря, один класный чел-доброволец пишет новую статью о F#. Это же просто замечательный подход для празднования Рождества, не правда ли?

Давайте же поддержим эту инициативу и сделаем английскую версию такого календаря. Две блог статьи в день лучше одного, неправда ли? Нам нужен 31 доброволец, готовый подготовить и опубликовать статью о F# в назначенный день.
Подробности
Всего голосов 11: ↑7 и ↓4 +3
Комментарии 0

DevCon Digest #1. Погружаемся в .NET

Время на прочтение 4 мин
Количество просмотров 17K
Блог компании Microsoft .NET *Visual Studio *C# *F# *


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

Поэтому мы решили делать еженедельные тематичные подборки материалов по одному из направлений конференции, собрав в одном месте недавние новости, новые учебные материалы, анонсы параллельных мероприятий и другие полезные ресурсы.
Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Комментарии 3

Используем сборочные скрипты на F# / C# в TFS 2012

Время на прочтение 8 мин
Количество просмотров 7.3K
.NET *C# *F# *
Из песочницы
Думаю, не я один вспоминаю Microsoft нехорошими словами, когда приходится модифицировать и/или расширять так называемый шаблон сборочного процесса (build process template) в TFS. Под катом история о том, как мы перешли от Xaml к скриптам на F# / C#. Как мы пытались интегрировать Fake в TFS, но в итоге получилось собственное решение — AnFake.

Статья будет полезна тем, кто использует TFS как CI-решение, но не в восторге от его шаблонов сборочного процесса.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 4

Библиотечные паттерны: Почему фреймворки — это зло

Время на прочтение 14 мин
Количество просмотров 19K
Блог компании Издательский дом «Питер»
Перевод
Здравствуйте, уважаемые читатели!

Сегодня мы хотим предложить вам перевод технической статьи, автор которой, Томас Петричек, рассматривает различные аспекты работы с библиотеками на языке F#. Поскольку мы сейчас изучаем потенциал одной книги, в создании которой участвовал этот автор, статья позиционируется прежде всего как текст-образец, на примере которого вы сможете оценить повествовательный талант автора, качество его идей, аргументов и рассуждений, а также примеры кода. Однако, поскольку изложенные в статье соображения не ограничиваются работой с F#, надеемся, что текст окажется информативным и интересным для самой широкой аудитории
Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Комментарии 4

Как спроектировать и написать полноценную программу

Время на прочтение 5 мин
Количество просмотров 35K
Функциональное программирование *
Recovery mode
Перевод
«Инструкция создания функционального приложения», часть 1.

«Мне кажется, что понимаю функциональное программирование на базовом уровне, и я даже писал простые программы, но как мне создать полноценное приложение, с реальными данными, с обработкой ошибок и прочим?»

Это очень распространенный вопрос, поэтому я решил, что в этой серии статей опишу инструкцию, охватывающую проектирование, валидацию, обработку ошибок, персистентность, управление зависимостями, организацию кода и так далее.
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 2

Приглашаем на FPConf.ru

Время на прочтение 8 мин
Количество просмотров 4.1K
Блог компании RubyRussia Haskell *Функциональное программирование *
Привет!

15 августа состоится FPConf — первая в России конференция по функциональному программированию. В двух потоках однодневной конференции будут доклады о Scala, F#, Erlang, Clojure, Haskell и функциональных подходах в привычных Ruby, Python и Java.

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

Поэтому, мы приглашаем как опытных функциональщиков, так и тех, кто только хочет получить вдохновение и обзор тем для первого изучения :)

Доклады от представителей JetBrains, Лаборатории Касперского, 2ГИС, Mail.ru, Mashine Zone, Luxoft, Sputnik и многих других.
Цена билета сейчас — 7000 рублей. Регистрация тут.


Программа:

image Эдвард Кметт, Chair of the Haskell Core Libraries Committee
LENSES AND PRISMS
Functional programming shows us that working with immutable structures makes it easy to reason about parallelism, non-determinism, and other effects, but along the way we lose the familiar notion of a field accessor. «Getters and setters» don't make sense as such in an immutable world. Lenses provide us a way to regain that lost functionality and more besides, acting as a form of «functional reference».
On the flip side, in the process of constructing the lenslibraryfor Haskell, I've found a related notion, that of a Prism, to be equally useful for working with case matching on ADTs, handling extensible exceptions, as well as working with semi-structured data such as JSON, XML and the like. However, surprisingly little has been said about them before now.
This talk will explore the roles each of these abstractions play and why you as a developer should care about them.
Смотреть всю программу
Всего голосов 18: ↑15 и ↓3 +12
Комментарии 0