LINUX.ORG.RU

Третий номер журнала «Практика функционального программирования»

 , ,


0

0

Вышел третий номер журнала «Практика функционального программирования». В новом номере опубликованы следующие статьи:

  1. Рекурсия + мемоизация = динамическое программирование. Дмитрий Астапов.
  2. Проектирование Erlang-клиента к memcached. Лев Валкин.
  3. Как построить Google Wave из Erlang и Tcl при помощи OCaml. Дмитрий Астапов, Алексей Щепин.
  4. Полиморфизм в языке Haskell. Роман Душкин.
  5. Элементы функциональных языков. Евгений Кирпичёв.

Кроме того, журнал организует конкурс на лучшие решения нескольких задач, с денежными (и не только) призами. Язык реализации — любой.

>>> Анонс нового номера журнала

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 2)
Ответ на: комментарий от ott

> а кто такой Кука, и почему он рецензирует?

Видимо, лавры моськи из басни Крылова не дают покоя.

pitekantrop ★★★
()
Ответ на: комментарий от mv

>> Три статьи (№№1, 4 и 5), причем последняя из них весьма толковая и обстоятельная - чисто академические, касающиеся теоретических базисов функциональных языков программирования.

Не могу не согласиться, что основной контент в журнале «ПРАКТИКА функционального программирования» к этой самой практике никакого отношения не имеет.

А что, хоть одна из этих статей не содержит ничего, что может пригодиться на практике?

pitekantrop ★★★
()
Ответ на: комментарий от ott

Насколько я помню, большинство тем предложено читателями в журнале у _adept_

Я отыскал эту тему. Свои подозрения насчет второй задачи забираю взад - с ней все абсолютно честно. Некто rssh, дрессировщик мартышекпроджект-менеджер из Киева, моск которого был погрызен собственными подопечными измучен постоянными сдвигами сроков, разочаровался в имеющихся инструментах для управления проектами и захотел поиметь свой, с «косынкой» и секретаршами, честно предложив за это вознаграждение. Другое дело, что подрядчиков для реализации своего замысла он выбрал, мягко скажем, странноватых.

Однако, происхождение первой задачи до сих пор таинственно. Не будете ли любезны ткнуть в пруфлинк? Благодарю.

Kuka ★★
()
Ответ на: комментарий от shty

рассмотрим некоторые положения по Алану Кею

Это вражеские лже пророки алана кея придумали:

http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP.

r ★★★★★
()

Самое интересное, не происхождение задач искать, а оценить экспертно-аналитической комиссией лора сколько стоит подобная работа на рынке.

anonymous
()
Ответ на: комментарий от r

Это вражеские лже пророки алана кея придумали:

Вообще, если я правильно понимаю, это из Кеевской статьи про историю Смолтока.

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.

Ну вот, в чистом виде Эрланг.

Miguel ★★★★★
()
Ответ на: комментарий от anonymous

> а нафиг функциональное программирование вообще придумали, пробовал разобраться ничего не понятно, авторам яица оторвать надо

сейчас кто то начнет поучать, дескать мол глупый и всё такое, отвечу сразу где нахрен результат? где отдача?, где комерчески выгодные проекты, так только академический интерес и словесное самоублажение...

Да, глупый, если пробовал разобраться и не смог. Про целесообразность и отдачу надо бы почитать презентацию Tim Sweney об Unreal Engine, который на 90% состоит из функционального кода, написанного (!!!) на плюсах. Со всеми вытекающими типа трудностей написания и отладки. Как резюме презентации - для современного геймдева (multi and may core programming etc) функциональное программирование самое то. Самым близким к идеальному геймдев языку Sweeney видит Haskell (хоть и он, по его мнению, не идеален). Вот так просто.

http://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/docs/sweeny.pdf

anonymous
()
Ответ на: комментарий от anonymous

> Искренне ваш, К.О.

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

Обращение к редколлегии: я, конечно, не лезу со своим уставом в ваш монастырь, но почему бы не написать открыто о происхождении задач? о том, что одна спонсируется частным лицом, а другая принесет ощутимую пользу сообществу? Анонимус-то все равно докопается рано или поздно.

Kuka ★★
()
Ответ на: комментарий от Kuka

> Обращение к редколлегии: я, конечно, не лезу со своим уставом в ваш монастырь, но почему бы не написать открыто о происхождении задач? о том, что одна спонсируется частным лицом, а другая принесет ощутимую пользу сообществу? Анонимус-то все равно докопается рано или поздно.

http://fprog.ru/contests/2009/

«Для этого мы собрали около тридцати заданий разных уровней сложности и попросили 18 программистов-профессионалов (в разных парадигмах программирования) ранжировать задачи по интересности и адекватности в качестве конкурсных задач. Уверены, что использование такого «разношёрстного» жюри для оценки задач — лучшее, что мы можем сделать для того, чтобы исключить «уклон» в сторону конкретного языка или парадигмы. Для того, чтобы исключить влияние случайных факторов на выбор членов жюри, мы взяли для конкурса не одну, а две самых популярных задачи.»

anonymous
()
Ответ на: комментарий от Kuka

почему бы не написать открыто о происхождении задач? о том, что одна спонсируется частным лицом, а другая принесет ощутимую пользу сообществу?

А какая разница???

Miguel ★★★★★
()
Ответ на: комментарий от Kuka

> почему бы не написать открыто о происхождении задач?

Да потому, что никого это, кроме тебя, не волнует. Ни происхождение, ни вознаграждение. Ты сильно напоминаешь тех «кандидатов» на работу, которые на предложение решить тестовое задание начинают верещать, что их хотят надуть и сделать всю работу бесплатно и ни на какую работу брать не будут. ))

Уймись уже, страдалец. %) Есть что сказать по фп, по задачам - милости просим. А про коллективный заговор злых мавроди от фп, пытающихся надуть прогерссивную обещственность ажно на целых 8 тыр. лучше помолчи. )))

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

LamerOk ★★★★★
()
Ответ на: комментарий от r

>OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.

Алан Кей - Бох!

Absurd ★★★
()
Ответ на: комментарий от Miguel

> А то, Erlang - он функциональный больше номинально...

А что такое «функциональный номинально» и какие ещё варианты бывают?

sv75 ★★★★★
()
Ответ на: комментарий от val-amart

Извиняюсь, уже нашел. Я когда не нашел второго номера, думал, это политика такая.

eugine_kosenko ★★★
()

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

фп вещь конечно правильная, но слишком уж все запутано. явно не хватает простой и универсальной концепции и такого же языка. я сам программирую исключительно на фяп уже несколько лет и могу сказать исходя из опыта - не для новичков сей инструмент. нужны не рассказы о том как все «просто» а именно простые инструменты которые будут подходить не только для написания hello world но и для решения практических задач. в линуксе тоже все «просто», поэтому человек без подготовки, решивший ознакомиться с линуксом скорее всего забросит его подальше. то же самое мы наблюдаем и с фп.

anonymous
()
Ответ на: комментарий от anonymous

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

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

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

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

anonymous
()

Болшое спасибо за журнал.

shk
()
Ответ на: комментарий от Miguel

>> ух ты, это ж практически Пролог.

Никакого отношения не имеет.

как ? о_О Пролог имеет самое прямое отношение к синтаксису эрланга =)

shild
()
Ответ на: комментарий от Miguel

> все является объектом

А в Erlang всё (ну, почти) является процессом. Просто вместо термина «объект» Erlang употребляет термин «процесс».

понятно, но Вы же не станете отрицать что это не одно и то же? концептуально в смысле

пункт про «объекты работают, пересылая друг другу сообщения» - вполне выполняется, с той же заменой.

ну тут спорить не буду - похоже

shty ★★★★★
()
Ответ на: комментарий от anonymous

ух ты, это ж практически Пролог.

ога! оно по жизни с пролога весьма обстоятельно срисовано :)

shty ★★★★★
()
Ответ на: комментарий от LamerOk

> вот почему среди кучи практических задач нужно было выбрать одни из самых унылых?

Да блин. Чтобы решающие думали не над оригинальностью и выпендрежностью решения, а над оригинальностью и выпендрежностью исполнения.

а что тут думать, задача - гавно :) была бы не гавно с удовольствием поковырялся бы... вот и всё мысли

Всегда ваш, К.О.

Козёл Отпущения? :)

shty ★★★★★
()
Ответ на: комментарий от Miguel

> ух ты, это ж практически Пролог.

Никакого отношения не имеет.

и теперь 2 кода в параллель

Erlang

factorial(1) -> 1;
factorial(N) -> N * factorial(N-1).

Prolog

factorial(0,1).
factorial(N,F) :- N1 is N-1, factorial(N1,F1), F is N*F1.

ну неужели совсем не видно идиоматического сходства?

shty ★★★★★
()
Ответ на: комментарий от r

google treasure hunt вам в помощь.

не мне, а уважаемым авторам, не всё ж в вакууме сферическими приписками меряться :)

shty ★★★★★
()
Ответ на: комментарий от r

Это вражеские лже пророки алана кея придумали

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

shty ★★★★★
()
Ответ на: комментарий от Miguel

> OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.

Ну вот, в чистом виде Эрланг.

если так, то - да, совпадение налицо

shty ★★★★★
()
Ответ на: комментарий от anonymous

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

кстати такое название подходит больше чем нынешнее :)

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

да простая она, простая... просто новички приходят измученные другопарадигменным нарзаном

shty ★★★★★
()
Ответ на: комментарий от pitekantrop

А что, хоть одна из этих статей не содержит ничего, что может пригодиться на практике?

Теория, несомненно, может применяться на практике, но от этого теория практикой не становится.

mv ★★★★★
()
Ответ на: комментарий от val-amart

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

что я хотел сказать сравнивая с линуксом - между домохозяйкой и линуксом устанавливаются примерно такие же «теплые» отношения как и между нубом-кодером(или кодером пораженным ООП головного мозга) и фп. т.е. всем хочется послать друг друга на?*&. и это плохо.

anonymous
()
Ответ на: комментарий от Miguel

я не знаю Erlang, знаю только немного Prolog, поэтому попрошу не смеяться:

Объект ведь может на получение сообщения вернуть что-нибудь. Как это «что-нибудь» поймать на ерланге в случае асинхронной обработки?

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

Как это «что-нибудь» поймать на ерланге в случае асинхронной обработки?

та где-то так :)

rpc(Pid, Query) ->
    Pid ! {self(), Query},
    receive
        {Pid, Reply} ->
            Reply
    end.

loop(X) ->
    receive
        Any ->
            io:format("Received:~p~n", [Any]),
            loop(X)
    end.
shty ★★★★★
()
Ответ на: комментарий от shty

если я понял Ваш вопрос правильно )

shty ★★★★★
()
Ответ на: комментарий от tailgunner

>> Функцианальшина появилась в 1958 году.

Лисп? Так он не функциональный.

Таки функциональный

Пруфлинк:

http://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD...

Simula-67 была надмножеством над Algol-60. (Я этот Алгол в ФМШ изучал. Теоретически.)

На Симуле можно

Begin

OutText («ПреведЪ!»);

End;

Симула-67 это типа Delphi или Obj-C. (Простите за грубое сравнение.)

Первый 100% - Smalltalk. Там всё есть объекты. Даже управляющие конструкции - это объекты.

Bioreactor ★★★★★
()

К сожалению, чистого ООП почти нет.

Squeak существует за счет меценатства старика Абдулфаттахыча. Который сам навязывает девелоперам гибридный Obj-C 2.0.

Остальные реализации смоллтока как-то увядают. Бимеры продали VAST третей фирме.

Bioreactor ★★★★★
()
Ответ на: комментарий от shty

конкурс как конкурс

задачи обсуждались в жж у адепта и Валкина. Там наоборот речь шла о демонстрации языка в быту. Мат задача после решения может быть записана на чем угодно и это не имеет значения. Победил бы скриптик на матлабе или нечто похожее.

Другой вопрос что до середины января настоящие сварщики вряд ли будут свободны и фп может победить в связи с неявкой оппонента :)

sleepy
()
Ответ на: комментарий от Bioreactor

Ю>> Функцианальшина появилась в 1958 году.

Лисп? Так он не функциональный.

http://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD...

Ссылки на русскую Вики на тему CS? %)

Симула-67 это типа Delphi или Obj-C. (Простите за грубое сравнение.)

Ну и что? Все хаарактерные признаки ООП в нем есть.

Первый 100% - Smalltalk. Там всё есть объекты. Даже управляющие конструкции - это объекты.

Лисп ни при каких обстоятельствах не может быть назван 100% ФП, так что если требуешь 100% чистоты, либо не считай Лисп, либо считай и Симулу.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Вам-таки надо в редакторы педивикии.

А то понапейсали там нечто непотребное про ЛИСП, Лугоффского на них нет!

----

Первый 100% чистый ОО - это Смаллтолк.

Transcript show: 'Hello, Smalltalk!'. ^D

Hello, Smalltalk!

В педивикии, видать, примеры на St напейсать без синтаксической ошибки не могут. (У меня Squeаk 3.10.2.)

Bioreactor ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.