Дорогие любители Scala! Пользуемся последним моментом, чтобы сообщить вам об очередной встрече Scala User Group в Москве. Она пройдет в эту пятницу, 25 апреля на территории НИИ «Восход». Начало в 19:30. Для того, чтобы прийти на встречу, необходимо заполнить форму регистрации: docs.google.com/forms/d/1tYo8unkWNpQYN-lCwoZz4mL7AcvNQGi_Zt1O7TTpknA/viewform (все поля обязательны, ФИО должны вводиться целиком). Последний день регистрации — сегодня, 23 апреля.
Читать полностью »
Рубрика «функциональное программирование» - 43
Четвертая встреча Scala User Group в Москве: последний день регистрации!
2014-04-22 в 21:30, admin, рубрики: scala, функциональное программирование, метки: scalaКвантовая схемотехника: некоторые приёмы и техники
2014-03-19 в 6:34, admin, рубрики: Анализ и проектирование систем, квантовые вычисления, Программирование, схемотехника, функциональное программирование, метки: квантовые вычисления, схемотехникаСегодня в рамках работы над книгой «Квантовые вычисления и функциональное программирование» я хотел бы представить на суд почтеннейшей публики свою очередную статью про квантовые вычисления.
Квантовая схемотехника — это, по сути, методология анализа и, главное, синтеза квантовых схем, реализующих те или иные алгоритмы (в общем понимании, не только квантовые). Обобщённо любой вычислительный процесс представляется в виде тройки (вход, процесс преобразования, выход). Принимая во внимание это соображение, задачами квантовой схемотехники можно назвать:
- Прямой анализ. При наличии схемы входа и описания вычислительного процесса определить схему выхода.
- Обратный анализ. При наличии описания вычислительного процесса и схемы выхода определить схему входа.
- Синтез. При наличии схем входа и выхода построить описание вычислительного процесса.
К сожалению, в имеющейся литературе по квантовым вычислениям данные вопросы практически не находят своего отражения (от силы есть пара источников на русском языке, где кратко рассматриваются некоторые из них), а именно они являются краеугольным камнем прикладного программирования. Поэтому далее в этой статье я постараюсь в полной мере раскрыть все три аспекта квантовой схемотехники.
Лучший мир с ReactiveCocoa
2014-03-07 в 12:47, admin, рубрики: functional programming, iOS, objective-c, OS X, reactivecocoa, разработка под iOS, функциональное программирование, метки: functional programming, iOS, objective-c, OS X, reactivecocoaБольшинство приложений тратят много времени на ожидание событий и их обработку. Они ожидают взаимодействия пользователя с интерфейсом. Ожидают ответа на сетевой запрос. Ожидают завершения асинхронных операций. Ждут изменения зависимого значения. И только потом они реагируют.
Все эти ожидания и реакции можно реализовать большим количеством способов. Нам становится трудно рассуждать о них, связывать и создавать в любой высокоуровневой форме. Но мы можем сделать лучше.
Именно поэтому мы решили сделать общедоступной часть волшебства, стоящей за GitHub for Mac: ReactiveCocoa (RAC). RAC — это framework для компановки и преобразования последовательностей значений.
Читать полностью »
О Haskell по-человечески
2014-03-06 в 7:40, admin, рубрики: haskell, функциональное программирование, метки: haskellПриветствую всех Хабражителей!
Представляю вашему вниманию книгу о языке Haskell. Впрочем, «книга» — это громко сказано: 160-страничное руководство для обыкновенных программистов, которые хотят наконец понять, как же можно жить без оператора присваивания и что такое монада.
Озвучу причины, с чего это вдруг мне, самому заурядному C++-разработчику, взбрело в голову написать про Haskell.
Читать полностью »
ZoG на стероидах
2014-03-05 в 11:25, admin, рубрики: dsl, game development, Zillions of Games 2, ZRF, макросы, ненормальное программирование, препроцессор, функциональное программирование, метки: dsl, Zillions of Games 2, ZRF, макросы, препроцессорКогда я писал о разработке игры "Thud!", я уже сетовал на некоторую избыточность полученного описания. Простота языка ZRF имеет свою оборотную сторону — для того чтобы написать на нем что-то более менее сложное, часто, приходится дублировать значительные фрагменты кода. Подобная избыточность, как известно, приводит не только к увеличению объема ручной работы, но и значительно усиливает риск появления в коде разнообразных ошибок (поскольку процесс отладки ZoG приложений весьма не тривиален, это является существенным моментом).
Как можно бороться с подобной избыточностью?
Разумеется, с помощью макросов! Проблема в том, что макросы ZRF недостаточно выразительны для этого. Адриан Кинг, в процессе разработки игр Scirocco и Typhoon, пришел к аналогичному выводу и разработал свой собственный, расширенный язык макросов, работающий как внешний препроцессор. Сегодня, я расскажу о возможностях этого языка и постараюсь, на примере Thud!, показать его использование в процессе разработки ZRF-приложений.
Scala Moscow User Group, встреча 14 марта 2014
2014-03-05 в 9:15, admin, рубрики: functional programming, monads, scala, scalaz, tinkoff, type theory, Блог компании Тинькофф Кредитные Системы, функциональное программирование, метки: functional programming, monads, scala, scalaz, tinkoff, type theoryВ прошлый раз мы провели ознакомительную встречу. Собралось около 25 человек, мы узнали кто в Москве занимается разработкой на Scala и какие есть интересные проекты. Главной темой выбрали курс по реактивному программированию на Coursera, который как раз тогда подходил к концу.
В этот раз мы соберёмся послушать и обсудить два доклада:
- Алексей Иванов приедет из Питера и расскажет доклад «Monadic Bakery with Spray and Scalaz»,
про то почему Spray и ScalaZ — не страшные звери, а хорошие друзья; - Владимир Успенский расскажет про теорию типов и тем, как она связана с обычной разработкой в докладе:
«Теория типов, или как мы занимаемся математикой, программируя на Scala».
Доклады будут отнюдь не вводные, чуть глубже затронут тему функционального программирования и предназначены на подготовленных слушателей. После за чаем обсудим доклады, интересующие темы, а также планы на будущее.
Зачем нужны все эти фунткоры и монады?
2014-02-18 в 7:38, admin, рубрики: haskell, монады, Программирование, функциональное программирование, метки: haskell, монады Очень часто в статьях про Хаскель сплошь и рядом встречаются функторы и особенно монады.
Так часто, что порой не реже встречаются комментарии «сколько можно про какие-то новые монады» и «пишите о чём-либо полезном».
На мой взгляд это свидетельствует о том, что люди порой не понимают зачем же нужны все эти функторы и монады.
Это статья попытка показать, что сила функциональных языков и в первую очередь Хаскеля — это в том числе и силе функторов и монад.
Читать полностью »
Дизайн и архитектура в ФП. Введение и Часть 1
2014-02-10 в 2:58, admin, рубрики: haskell, UML, архитектура приложений, паттерны проектирования, Проектирование и рефакторинг, функциональное программирование, метки: UML, архитектура приложений, паттерны проектированияВведение
В мире функционального программирования есть один большой пробел, а именно почти не освещена тема высокоуровневого дизайна больших приложений. Я решил для себя изучить этот вопрос. Есть ли существенные отличия дизайна приложений в ФП-мире от оного в мире императивном? Что такое «каноничный ФП-код»? Какие существуют идиомы разработки, есть ли смысл вообще говорить о паттернах проектирования в применении к ФП? Эти и другие важные вопросы часто вспыхивают то там, то здесь, но покамест мне не известно ни одной книги, аналогичной книге Банды Четырех. Вероятно, мои изыскания уже кто-то повторил, однако тем лучше: схожие результаты подтвердят правильность, иные — укажут на место в теории, которое необходимо доработать.
Читать полностью »
Erlang для самых маленьких. Глава 3: Базовый синтаксис функций
2014-02-07 в 14:50, admin, рубрики: erlang, Erlang/OTP, для самых маленьких, никакой императивной скверны, Программирование, функции, функциональное программирование, метки: erlang, для самых маленьких, никакой императивной скверны, функции, функциональное программированиеДоброго ночи! Мы продолжаем изучение Erlang для самых маленьких.
В прошлой главе мы рассмотрели как объявлять функции и как объединять их в модули. В этой главе мы рассмотрим синтаксис функций более подробно.
Scala. Всем выйти из сумрака!
2014-02-06 в 14:15, admin, рубрики: implicit, scala, новичкам, функциональное программирование, функциональщина, метки: implicit, scala, новичкам, функциональщина А сейчас нужно обязательно дунуть, потому что если не дунуть, то ничего не получится.
—Цитаты великих
И здравствуйте!
Сегодня мы поговорим о неявном в языке Scala. Кто еще не догадался — речь пойдет об implicit преобразованиях, параметрах, классах и иже с ними.Все новички, особенно любители питона с зеновским Explicit is better than Implicit, обычно впадают в кататонический ступор при виде подкапотной магии, творящейся в Scala. Весь компилятор и принципы в целом охватить за одну статью удастся вряд ли, но ведь дорогу осилит идущий?Читать полностью »