LINUX.ORG.RU

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

 , ,


0

0

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

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

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

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

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 2)

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

мне действительно интересно, кто такой kuka - в профайле ничего не написано...

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

Сделают все возможное и невозможное, чтобы функциональные ЯП победили. Возьмут какой-нибудь суперкластер, чтобы победил Erlang.

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

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

Да там, ИМХО, непрограммистские проблемы сильно перевешивают.

про что и сказ...

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

я вообще, с учётом того что на практике порой приходится делать вот такие вот, не обременённые интеллектом задачи, вообще по прочтении обплевался... верите, даже вникать не хочется, настолько «интересно» :)

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

> Так Erlang - или функциональные? Erlang функциональный: http://ru.wikipedia.org/wiki/Erlang А спор о том, какой из языков менее функциональный, а какой более - на мой взгляд бесполезное и бесперспективное занятие.

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

задачи специально выбирались более-менее практические...

Ну и в итоге вообще неинтересные задачи. Я не возьмусь хотя бы потому что привык поинтеллектуальнее время проводить.

А с практической точки зрения у меня и так таких задач 3-4 штуки висит и я всячески оттягиваю время их решения, ибо нудятина и неинтересно. :)

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

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

Аналогично, коллега. На работе этого более чем хватает.

Кстати, с http://wiki.openstreetmap.org/wiki/.osm :

The format has never been formally specified.

Terrific.

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

> Задача совсем какая-то прикладная, невыразительная, с какой-то странной целью... Не на таких задачах языки бы сравнивать.

Да-да! Давайте посчитаем числа Фибонначи!!1 Мы все по ним _так_ соскучились...

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

> The format has never been formally specified.

Terrific.

ога, «преимущества» OSS в наличии :)

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

> Ну и в итоге вообще неинтересные задачи. Я не возьмусь хотя бы потому что привык поинтеллектуальнее время проводить.

Футбол или рестлинг? По телеку? С пивком? ;)

А с практической точки зрения у меня и так таких задач 3-4 штуки висит и я всячески оттягиваю время их решения, ибо нудятина и неинтересно. :)


За версту видно настоящего _профессионального_ программиста. ))



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

> Задача совсем какая-то прикладная, невыразительная, с какой-то странной целью... Не на таких задачах языки бы сравнивать.

Да-да! Давайте посчитаем числа Фибонначи!!1 Мы все по ним _так_ соскучились...

ну не надо же так утрировать :) есть и поинтереснее задачки типа той что я приводил пару постов назад )

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

Футбол или рестлинг? По телеку? С пивком? ;)

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

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

эммм... а что значит номинально? просто функциональный и всё :)

Да не, реально Erlang представляет собой наиболее полную реализацию Кеевского определения ООП. Объектный он, короче говоря.

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

Не интересно тестировать бензопилу в лаборатории на полимерах. Интересно тестировать её в лесу при соответствующих разбросах темепратуры и влажности на разных породах деревьев.

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

Недоумение по поводу задачек мне совершенно не понятно.

Ну а жалобы, что «нет описания формата» - это детский сад. Раз жалобы на лор попадают, значит интернет всё таки есть. Ну, а раз есть интернет ...

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

Ну а жалобы, что «нет описания формата» - это детский сад. Раз жалобы на лор попадают, значит интернет всё таки есть. Ну, а раз есть интернет ...

...то есть и признание с OSD Wiki, что никакой спецификации формата не существует. См. выше.

Note to self: добавить в список мантр, прочитываемых перед сном, ещё одну - «open не значит good».

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

> никакой спецификации формата не существует.

Ты просто не поверишь, сколько всего мне встречалось входных данных, у которых не было спецификации. И ничего, писал программы, куда деваться? ))

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

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

Естественно, чисто алгоритмическая проблема была бы на мой взгляд гораздо веселее ;-)

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

Ты просто не поверишь, сколько всего мне встречалось входных данных, у которых не было спецификации. И ничего, писал программы, куда деваться? ))

О чём мы с shty речь и ведём. Что когда деваться некуда - мы таки напишем. А когда есть куда...

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

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

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

Да не, реально Erlang представляет собой наиболее полную реализацию Кеевского определения ООП. Объектный он, короче говоря.

эммм... вроде налицо и паттерн матчинг и иммутабельность и прочие функциональные штуки... а что с объектами там?

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

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

смотрим программу вычисления факториала на erlang

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

эээ??? и где тут объекты? вижу только паттерн матчинг :)

каждый объект является представителем класса, который выражает общие свойства объектов данного типа;

тоже не выполняется

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

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

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

anonymous
()

>Как построить Google Wave из Erlang и Tcl при помощи OCaml

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

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

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

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

каждый объект является представителем класса, который выражает общие свойства объектов данного типа;

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

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

Очень какая-то натянутая трактовка. Ну и да, функциональным он не смотря на быть не перестает, без всяких там «больше-меньше».

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

Не интересно тестировать бензопилу в лаборатории на полимерах. Интересно тестировать её в лесу при соответствующих разбросах темепратуры и влажности на разных породах деревьев.

только не говорите это профессиональным лесорубам, а то они Вас заржут... уж извините, но это мнение лабораторного учёного, который бензопилу только в лаборатории и видел :)

Задачки, имеющие чисто математическую природу для сравнения языков посредством сравнения решений совершенно не интересны.

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

Недоумение по поводу задачек мне совершенно не понятно.

неинтересные задачи, вот и всё... и никакой, заметьте, тайны :)

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

сколько всего мне встречалось входных данных, у которых не было спецификации. И ничего, писал программы, куда деваться? ))

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

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

Увы, большинство практических задач нудноваты.

скажем многие... а куда деваться? но это всё равно не повод давать неинтересную задачу

. Я полагаю, авторы стремились сделать условия по возможности близкими к боевым (дав унылую, но сравнительно точную спецификацию), взяв более или менее «реальные» проблемы, которые могут встретится в производстве. Не всегда надо решать нерешаемую проблему :-)

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

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

а большинство задач имеют математическую природу, в том числе указанные в конкурсе

Там еще было слово «чисто». ))

неинтересные задачи

Это потому, что вы не до конца поняли задачу конкурса. )) Да, задачи сами по себе не потрясают воображение, не заставляют терять сон и не повысят уровень цен на кофе и сигареты. Ну и отлично. Ведь задача конкурса - не решить задачу. Задача конкурса - продемонстрировать преимущества языка на примере конкретной задачи. Согласитесь, немного разные вещи? ;)

LamerOk ★★★★★
()

под треды о ФП
так сладко засыпать
вот и сейчас

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

Кстати, да, приведете пример программы подсчета чисел Фибоначчи? ;)

простой случай :)

fibo(0) -> 0 ;
fibo(1) -> 1 ;
fibo(N) when N > 0 -> fibo(N-1) + fibo(N-2).

отсюда

shty ★★★★★
()

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

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

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

>а большинство задач имеют математическую природу, в том числе указанные в конкурсе

Там еще было слово «чисто». ))

а для чисто математических задач вообще ЯП не нужен, есть же чисто математика )

Это потому, что вы не до конца поняли задачу конкурса. )) Да, задачи сами по себе не потрясают воображение, не заставляют терять сон и не повысят уровень цен на кофе и сигареты. Ну и отлично. Ведь задача конкурса - не решить задачу. Задача конкурса - продемонстрировать преимущества языка на примере конкретной задачи. Согласитесь, немного разные вещи? ;)

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

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

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

Вам сюда или сюда

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

Да не скажи, это уже многие эрлангисты подмечают. Я, в общем, параллель заметил сам, но не был в этом первым.

Вот, например: http://web.archive.org/web/20080618072116/http://www.cincomsmalltalk.com/user...

Processes in Erlang are objects. At the beginning of my course on OO design, I explain three views of OO programming. ... The mystical view is that an OO system is one that is built out of objects that communicate by sending messages to each other, and computation is the messages flying from object to object.

Erlang is a perfect example of the actor model, which is an example of the mystical view. ... So, Erlang fits all the characteristics of an OO system, even though sequential Erlang is a functional language, not an OO language.

Miguel ★★★★★
()

Кайфовый журнал, большое спасибо авторам и редакторам. С удовольствием читаю и дома, и на парах. Кстати, сделайте наконец HTML-версии статей второго номера. Не то, чтобы мне лично это очень нужно, но для полноты картины хотелось бы.

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

будет, вроде сейчас экспорт в html более-менее отладили...

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

>Kuka...

Типа анонимус негодуэ? Зашишает клош шерсти на афедроне?

Намеки на корысть были бы, безусловно, интересны, если бы элементарное гуглдение сразу не выдавало чего-то вроде http://en.kioskea.net/telecharger/telecharger-1248-gantt-project (Gantt on Ocaml).

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

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

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

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

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

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

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

LamerOk ★★★★★
()

а какие библиотеки для конкурса можно использовать glib там или может сразу готовую по работе с картами?

задача с расписаниями, а оно вообще разрешимо в общем случае?

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

Полнее, чем Smalltalk?

Угу. Нигде у Кея явно не сказано, что обработка сообщений должна быть синхронной.

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