Отправляет email-рассылки с помощью сервиса Sendsay

RSS-канал «Практика функционального программирования»

Доступ к архиву новостей RSS-канала возможен только после подписки.

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

   

Подписаться на другой RSS-канал, зная только его адрес или адрес сайта.

Код формы подписки на этот канал для вашего сайта:

Форма для любого другого канала

Последние новости

Лев Валкин — Как написать LDAP-сервер на Си (обсуждение)
2011-04-13 16:37 antilamer
Ответ на статью Максима Сохацкого (опубликованную несколькими страницами ранее), в котором делается попытка показать, что написание прототипа LDAP-сервера на языке Си ничуть не сложнее, чем на Эрланге. Проводится cравнение полученных решений.

This is a response to the preceding Maxim Sokhatsky's article. We're aiming to show that creating a LDAP server prototype in C is not any more complex than writing it in Erlang. We compare the resulting C and Erlang solutions.

Максим Сохацкий, Олег Смирнов — Как написать LDAP-сервер на Erlang (обсуждение)
2011-04-13 16:36 antilamer
Статья про то, как с нуля быстро сделать прототип сервера, отвечающего по LDAP протоколу стандартному почтовому клиенту. В качестве основного инструмента весьма к месту был выбран Erlang.

This is an article about a rapidly-prototyped LDAP server capable of answering to a default Mail client. Erlang is the language of our choice.

Вадим Залива — Разработка алгоритма обнаружения движения в среде Mathematica (обсуждение)
2011-04-13 16:35 antilamer
В данной статье мы рассмотрим пример использования среды Mathematica для быстрого прототипирования простого алгоритма обнаружения движения. Кроме общих приёмов работы с Mathematica, мы познакомим читателя с некоторыми понятиями из области машинного зрения, цифровой обработки изображении и сигналов. При разработке мы применим некоторые из подходов функционального программирования, поддерживаемых Mathematica.

In this article, we will use Mathematica to develop a prototype of a simple motion detection algorithm. We will introduce the basics of using Mathematica environment and use this exercise to illustrate some basic concepts from the fields of machine vision, digital image processing and signal processing. We will be using some of the functional programming capabilities provided by Mathematica.

Александр Темерев — Circumflex — веб-фреймворк на Scala comme il faut (обсуждение)
2011-04-13 16:33 antilamer
Веб-фреймворк Circumflex — одна из сравнительно недавних разработок на Scala, и, на взгляд автора, гораздо менее известная, чем она того заслуживает. В статье описываются отличия Circumflex от других веб-фреймворков, применение языковых средств Scala для создания необходимых фреймворку DSL, подход к структурированию Scala-проектов, применяемый разработчиками фреймворка, и другие его интересные особенности.

Circumflex is a relatively new player among Scala web frameworks; it appears to be much less popular than it deserves, from author's point of view. This article outlines the differences between Circumflex and other web frameworks, its employment of Scala language features to build useful DSLs, its clever approach to structuring of Scala code and other interesting features.

Бойко Банчев — Язык РЕФАЛ — взгляд со стороны (обсуждение)
2011-04-13 16:31 antilamer
Знакомство с языком Рефал полезно программисту хотя бы потому, что этот функциональный язык не похож ни на один из других — среди них он занимает особое место и по возрасту, и по происхождению, и по назначению, и по стилю. Достойно сожаления то что, несмотря на свои качества, язык не очень популярен.

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

Помимо описания самого Рефала, представлен взгляд автора на место, достоинства и слабые стороны языка.

Knowing the Refal language is useful to a programmer, if for nothing else than for the language's uniqueness — with respect to its age, its origin, its intended purpose, and style. It is regrettable that, in spite of its qualities, the language is not very popular.

This article gives an introduction to Refal.

«Практика функционального программирования» № 7
2011-04-13 16:21 antilamer
Бумажная версия: на сайте издательства (200р, доступны и все предыдущие номера, комплекты еще дешевле, доставка куда угодно, в Москве можно самовывозом).


Электронные версии: для ebook, для чтения с экрана, для печати, для компактной печати (HTML на подходе).


Седьмой номер был небыстр и нелегок в производстве; долгими студёными зимними вечерами, не покладая рук, трудились авторы и редакторы над его созданием. Но, пожалуй, труды себя оправдали — по разнообразию и качеству содержимого этот номер беспрецедентен; низкий поклон авторам. Мы уверены, что читатели откроют для себя из статей много нового, и надеемся, что этот номер окажется большим шагом к выполнению нашей основной задачи: повысить осведомленность о не-мейнстримных языках и методиках программирования в русскоязычном сообществе и изменить отношение к ним.

Статьи


Позволим себе пару комментариев относительно статей номера.

  • Язык РЕФАЛ — взгляд со стороны (Обсуждение). Бойко Банчев расскажет о сущности, истории и современном состоянии языка РЕФАЛ — детища Валентина Фёдоровича Турчина; языке незаслуженно подзабытом, но на десятилетия опередившем своё время и пустившем корни во множество современных ЯП (как, например, Mathematica).
  • Circumflex — веб-фреймворк на Scala comme il faut (Обсуждение). Александр Темерев даст урок использования этого «обезжиренного» и гибкого веб-фреймворка, написанного на Scala российской командой во главе с Борисом Окунским.
  • Разработка алгоритма обнаружения движения в среде программирования Mathematica (Обсуждение). Вадим Залива расскажет об опыте прототипирования такого алгоритма при разработке iPhone-приложения iSentry. Хотя Mathematica и не является в полном смысле этого слова функциональным языком программирования, но программирование в этой среде задействует множество не очень распространенных пока в мейнстриме, но очень важных и заслуживающих внимание средств: интерактивный интерпретатор, гомоиконность (единство кода и данных), сопоставление с образцами, wholemeal programming (оперирование целыми структурами данных, а не их частями), акцент на «чистое» программирование, dataflow programming (Manipulate) и т.п.
  • Как написать LDAP-сервер на Erlang (Обсуждение) и Как написать LDAP-сервер на Си (Обсуждение). Максим Сохацкий и Олег Смирнов обменяются любезностями со Львом Валкиным: Максим и Олег похвалят Erlang за то, что на нем можно за 20 минут написать LDAP-сервер, а Лев докажет, что дело тут вовсе не в Erlang.
  • Продолжения в практике (Обсуждение). Алексей Вознюк (человек, написавший на LISP самую быструю программу к конкурсу в ПФП № 3) расскажет об использовании продолжений для упрятывания асинхронности кода за обыкновенным «последовательным» синтаксисом. Эта тема особенно актуальна в контексте взрывного роста Веба и сетевых сервисов, но интересна и потому, что открывает целый пласт неожиданных структур управления. Рекомендуем перед прочтением ознакомиться с недавно опубликованным в «Библиотечке ПФП» переводом статьи «Паттерны использования call-with-current-continuation».
  • Суперкомпиляция: идеи и методы (Обсуждение). Илья Ключников, занимающийся суперкомпиляцией в Институте прикладной математики им. М. В. Келдыша, расскажет о суперкомпиляции (кстати, изобретенной также В. Ф. Турчиным в контексте языка РЕФАЛ), построив поразительно компактный и понятный суперкомпилятор простого языка, и покажет, что она применима не только для удивительно мощной оптимизации многих классов программ, но имеет и другие неожиданные применения. Обязательно прочитайте и приложение!


Печатный номер


Как и все предыдущие номера, данный номер доступен для заказа в издательстве Самиздал. Стоимость номера — 200 рублей; осуществляется доставка в Россию и по всему миру (в Москве можно забрать прямо из издательства). В блогах можно найти немало постов от гордых владельцев комплектов ПФП с фотографиями, разве не завидно? ;) Напоминаем, что все доходы от продаж уходят на услуги типографии — так что мы будем по-прежнему рады, если вы угостите нас кофе за наши труды.

Реклама


Мы по-прежнему предлагаем рекламодателям очень дешевую площадку для публикации вакансий в номере, и напоминаем, что едва ли в Рунете есть издание для программистов с такой же «концентрированно сильной» аудиторией более 10 тысяч человек. Пишите на ad@fprog.ru!

Сообщество


Ну а для тех, кому журнала мало, напоминаем: бесценный источник функциональных новостей — само русскоязычное сообщество функциональных программистов. Следите за блогами в коллективном твиттере и Russian Lambda Planet! За новостями нашего журнала можно также следить в нашем официальном твиттере.

Приятного чтения!

С самыми чистыми пожеланиями,


Евгений Кирпичёв, jkff@fprog.ru



Дизайн обложки - ira_gord.

Реклама в грядущем fprog
2011-04-05 09:30 antilamer
Господа потенциальные рекламодатели!

Напоминаем, что в номере fprog.ru можно разместить рекламу. Расценки:
- Полноцветная реклама на обложке (как у Undev в номере 6) - $500
- Страница внутри с вакансией - $250

Пишите на ie@fprog.ru .

Это отличный способ дешево и сфокусированно привлечь вакансией много сильных программистов.
- Аудитория намного сильнее аудитории типичного рабочего сайта, да и акт размещения в fprog смотрится солидее, чем размещение на таком сайте.
- Аудитория намного больше круга знакомых типичного сильного знакомого программиста.
- Это минимум вдвое дешевле, чем типичный referral bonus, и уж подавно дешевле, чем платные услуги размещения на рабочих сайтах (об эффективности которых ходят легенды).

Новый перевод: Фергюсон, Дуайт - Паттерны использования call with current continuation
2011-03-20 12:58 antilamer
В Библиотечке ПФП прибавление: перевод статьи Даррелла Фергюсона и Деуго Дуайта «Паттерны использования «call with current continuation»».

Аннотация:
В этой статье описывается использование продолжений (continuations). В начале приводится краткий обзор продолжений, далее разбираются некоторые паттерны их использования, включая реализацию сопрограмм (coroutines), управляемого поиска с возвратом (backtracking) и многозадачности. Для примеров используется язык Scheme, поскольку в нем продолжения являются полноправными объектами.

От редактора:
Это, пожалуй, одна из самых интересных и доступных статей про использование оператора «call-with-current-continuation» (call-cc) и про продолжения вообще. Продолжения позволяют, в определенном смысле, получить непосредственный контроль над потоком исполнения программы, и реализовывать необычные и мощные структуры управления, которые без их помощи реализовать практически невозможно (а скорее всего, невозможно и догадаться до того, что они реализуемы и полезны). В этой статье приведено несколько очень интересных и красивых примеров таких структур управления. Может возникнуть вопрос - зачем они нужны; разве недостаточно традиционных циклов, условий, исключений? В качестве одного из примеров можно привести асинхронные программы, написанные с использованием асинхронного ввода-вывода, AJAX, Node.js, да и просто веб-приложения - для структуризации их на высоком уровне традиционные структуры управления абсолютно не приспособлены.

Прочитайте эту статью внимательно, особенно главу о сопрограммах (coroutines) - в ближайшем номере журнала (stay tuned! он выйдет уже очень скоро) будет виртуозная статья, посвященная именно использованию продолжений на основе call-with-current-continuation в асинхронном программировании.

Материалы:
PDF для чтения с экрана, PDF для печати, HTML-версия, Оригинал статьи

Перевод выполнил Владимир Дзюба, редактура и корректура - Евгений Кирпичёв, Сергей Дымченко, Алексей Отт, Лев Валкин.

tail call optimization
2011-02-14 14:22 sassa_nf
читая давишнюю статью http://fprog.ru/2010/issue4/alex-ott-clojure/:

"Например, JVM не поддерживает оптимизацию хвостовых вызовов (tail call optimization, TCO), поэтому в язык были введены явные операторы loop и recur."

почему TCO должно быть фичей JVM, а не компилятора? имхо всяческие lisp-ы справляются с задачей без поддержки среды.

Опять про выход номеров 1-5
2011-02-03 14:15 pirson
Добрый день, это опять "Самиздал".

По поводу вчерашнего сообщения - http://community.livejournal.com/fprog/19333.html - видим, что много неоплаченных заказов (то есть, многие не доводят до конца процесс заказа).

Что-то не так?

Если что, мы сейчас убрали с сайта возможность оплаты при самовывозе, потому что в прошлый раз (когда напечатали только шестой номер) многие так и не заехали в результате. Можно оплатить вперед, а потом забрать в офисе, да. Еще можно заплатить курьеру. В этом проблема?

Еще те, кто писал мне письма и делал предзаказ - им нужно все-таки сделать официально заказ на сайте теперь. Этот опрос использовался для определения количества только. (Те, кто оплатил на прошлой неделе через старый магазин - мы все получили и повторять не нужно)

Пишите, пожалуйста, если что.

Новости от издательства Самиздал
2011-02-02 15:04 pirson
Добрый день,

Можно заказывать все шесть номеров на бумаге, по отдельности и в комплектах (200 р. за номер, 900 р. за пять, 1000 р. за шесть), в Россию и за границу.

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

У нас новый магазин - http://samizdal.tmweb.ru/. Если заметите неполадки, пожалуйста, сообщайте. Вроде бы все должно быть четко.

Новый перевод в библиотечке
2011-01-31 15:33 antilamer
В Библиотечке ПФП опубликован перевод статьи Мартина Эрвига "Побег от Зурга: Упражнение в логическом программировании".

Перевод выполнен Евгением Прохоровым geniepro.

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

Оригинал статьи на английском языке: http://web.engr.oregonstate.edu/~erwig/papers/Zurg_JFP04.pdf

Переводы в библиотечку ПФП
2011-01-30 11:11 antilamer
Дамы и господа!

Что из классической литературы по ФП, по-вашему, стоило бы перевести в библиотечку ПФП? Предлагаю обсудить в этом посте.
Необязательно конкретные статьи, можно и темы.

Желающие предложить свои переводы или выполнить предложенные также строжайше приветствуются - родина вас вовеки не забудет, ибо проект в своем роде единственный!

Вот что кажется мне:
- Guy Steele - Lambda Papers, в частности "Lambda: the ultimate GOTO", "Lambda: the ultimate imperative"
- Guy Blelloch - Vector Models for Data-Parallel Computing
- Henk Barendregt - Lambda Calculi with Types
- Fergusson, Deugo - Call with Current Continuation Patterns
- Philip Wadler - Monads for functional programming
- Iverson - Notation as a tool of thought, либо что-то еще на тему APL/J/K
- Peyton-Jones - Composable Memory Transactions
- Kiselev, Peyton-Jones etc. - Fun with Type Functions
- Что-либо про prolog
- Что-либо про forth или другие конкатенативные языки
- Что-либо про partial evaluation
- Что-либо про calculus of inductive constructions

Уровень сложности
2011-01-06 18:30 honeyman
А почему бы в таком серьёзном научном журнале не иметь пометок об уровне сложности статьи (как в самой статье, так и в оглавлении)? Ну, наподобие звёздочек, или лямбдочек каких. Одна лямбдочка (или даже половинка) — подробный рассказ о том, как написать и как понять функцию вычисления чисел Фибоначчи на Haskell. Пять лямбдочек — доказательство противоречивости теории категорий. Ноль лямбдочек — рассказ о практическом опыте написания MMORG на Java (что наверняка не менее сложно, просто сложно не в контексте функционального программирования).

Открыл так оглавление нового номера и сразу видишь, что и в каком порядке читать. Ну, или оцениваешь свой уровень по тому, какие статьи понимаешь :)

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

Самиздал: Обратная связь
2010-12-07 18:06 pirson



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

Сообщение от издательства Самиздал
2010-12-07 17:12 pirson
Господа!

1. Прошла неделя с момента релиза. Осталось еще некоторое количество экземпляров 6-го номера по цене 99 рублей.

Красивые фотографии напечатанного журнала (кликабельно!).



Все заказывается на http://samizdal.ru/fprog.

Получить журнал, на самом деле, очень просто. Способы такие:

- Выбрать опцию "самовывоз", приехать в наш офис на Калужской с 10 до 18, или в офис Undev.Ru на Кропоткинской с 11 до 20. Выдать 99 рублей, получить свой журнал и по желанию чашку чая с печеньем.
- Заказать почтовую доставку. По России 100 рублей, за границу около 200. Мы высылаем все заказной бандеролью, что дает возможность трекинга по сайту http://russianpost.ru.
- Заказать курьера в пределах МКАД.

Если у вас возникают технические проблемы любого характера, пожалуйста, пишите мне - maria.hertz@samizdal.ru, и я приму у вас платеж в частном порядке.


2. Кроме этого! Теперь можно заказать все номера журнала "Практика функционального программирования" с начала его выхода.

Цена любого номера - 200 рублей, нам нужно набрать не менее десяти желающих на номер (upd: набрано по всем, теперь просто собираем заказы, чтобы понять, каким тиражом печатать). Если хотите заказать, пожалуйста, пишите мне - maria.hertz@samizdal.ru, иначе вам может не хватить.

Работоспособность samizdal.ru восстановлена
2010-11-30 18:04 antilamer
Платежи на http://samizdal.ru/fprog/ теперь должны снова работать.

Все, кто делал заказ и получал ошибку - журнал вам придёт.
Все, кто делал заказ более одного раза и у кого деньги снялись более одного раза - деньги за лишние платежи будут вам возвращены.
На всякий случай напишите на e-mail maria.hertz@samizdal.ru , если есть подозрение, что с вашим платежом что-то не так.

Приносим извинения за неудобства.

Практика Функционального Программирования - номер 6
2010-11-30 15:36 antilamer
И вот, после долгого летне-осеннего перерыва, мы снова с вами, дражайшие читатели!

Вышел шестой номер.

Печатный номер


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

Первым двумста счастливчикам номер достанется всего за 99 рублей, остальным — всего за 200. Получить журнал можно самовывозом или доставкой по Москве и России — подробности на сайте издателя.

Содержание


Гвоздь номера — эксклюзивные интервью с титанами функционального мира, создателями языков Haskell и Erlang: Саймон Пейтон Джонс и Джо Армстронг поделятся мыслями и ответят на вопросы о своих детищах и обо всем остальном, от работы в Microsoft Research до творчества Тарковского (обсуждение: Саймон Пейтон-Джонс, Джо Армстронг).

Также приглашаем:
  • Тех, для кого «web scale» — не пустой звук — на просмотр смертельной битвы между Erlang и node.js, организованной Дмитрием Демещуком (обсуждение);

  • Тех, кто испытывает противоречивые чувства по отношению к Java — на обзор языка Scala от Влада Патрышева (обсуждение);

  • Тех, кто неравнодушен к растительному миру и абстрактной алгебре — на ознакомление с алгоритмическим творчеством Дэна Пипони (создателя спецэффектов ко всем трем «Матрицам» и бога Haskell) (обсуждение) и на его развитие в статье вашего покорного слуги (обсуждение).

Библиотечка ПФП


Представляем проект «Библиотечка ПФП». Его цель — заполнить пробелы в существовании русскоязычных переводов классических статей-«жемчужин» из области функционального программирования и других областей.

В первом выпуске — перевод статьи Ерона Фоккера «Систематическое конструирование однокомбинаторного базиса для λ-термов».

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

С самыми чистыми пожеланиями,
Евгений Кирпичёв, jkff@fprog.ru

Интервью с Джо Армстронгом
2010-11-30 15:36 antilamer
Джо Армстронг &emdash; один из создателей языка Erlang. Работая в лаборатории Ericsson в 1986 году, он входил в состав команды, которая разработала и реализовала первую версию языка. С тех пор, помимо работы над самим языком, он написал несколько книг об Erlang, провел первый учебный курс по Erlang и обучил языку сотни программистов. Невзирая на свой напряженный график (Джо регулярно читает лекции и выступает на конференциях), он любезно согласился дать интервью нашему журналу.


Joe Armstrong is one of the inventors of Erlang. When at the Ericsson computer science lab in 1986, he was part of the team who designed and implemented the first version of Erlang. He has written several Erlang books including “Programming Erlang Software for a Concurrent World”. Joe held the first ever Erlang course and has taught Erlang to hundreds of programmers and held many lectures and keynotes describing the technology.

HTML-версия интервью

Интервью с Саймоном Пейтоном Джонсом
2010-11-30 15:36 antilamer
Саймон Пейтон Джонс известен как один из ведущих «зачинщиков» языка Haskell, архитектор и главный разработчик компилятора GHC. Он также является редактором Haskell Report &emdash; документа, формально определяющего язык. Кроме того, Саймон дал языку его неофициальный девиз: «избегать популярности любой ценой».

В этом интервью Саймон расскажет о себе, о работе в Microsoft Research, своем взгляде на тенденции развития языков программирования вообще и Haskell в частности, о пользе езды на велосипеде и своем отношении к Erlang.


Simon Peyton Jones is known as one of the key people in the creation of the Haskell language, the architect and main developer of the GHC compiler. He is also an editor of the Haskell Report, the language's formal definition. Besides, Simon gave the language its unofficial motto: “avoid success at all costs”.

In this interview Simon will speak about himself, about his work at Microsoft Research, about his views on the trends in the development of programming languages and Haskell in particular, about the usefulness of biking and about his attitude to Erlang.


HTML-версия интервью