LINUX.ORG.RU
 
ott

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


0

0

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

  • Инструменты интроспекции в Erlang/OTP. Максим Трескин
  • Экономия ошибок. С. Зефиров, А. Сафронов, В. Шабанов, Е. Мельников
  • Введение в F#. Евгений Лазин, Максим Моисеев, Давид Сорокин
  • Лисп — философия разработки. Всеволод Дёмкин, Александр Манзюк
  • Оптимизирующие парсер-комбинаторы. Дмитрий Попов
  • Модель типизации Хиндли — Милнера и пример её реализации на языке Haskell. Роман Душкин

Также в этом номере опубликованы результаты конкурса, который был объявлен в 3-м номере журнала.

>>> Подробности


[#] Ответ на: комментарий от Rastafarra 21.05.2010 15:15:31  
mv

> где в приведенной мной цитате написано про строчки? ;)

А про что там ещё написано? "Наташа уехала на бал." читается легче и лаконичней, чем целая глава в "Войне и мире", посвящённая этому предложению. Чем меньше букв и проще текст, тем легче воспринимать смысл.

***** ()
[#] Ответ на: комментарий от anonymous 21.05.2010 13:27:28  
Rastafarra

> Где забрасывание дерьмом? Где крики, что ФП не нужно?

где же ты, мой толстый онанимный друг? :)

**# ()
[#] Ответ на: комментарий от Rastafarra 21.05.2010 15:16:59  
mv

> хм... в секте лиспоидов развал и шатание какое-то. некоторые полагают, что там «функционала на строку раз в 5-10 больше».

Чем "функционал" от "функционального программирования" отличается, сами найдёте?

***** ()
[#] Ответ на: комментарий от mv 21.05.2010 15:20:21  
Rastafarra

это я понимаю.

давай так:

императивно (например VB): c = a + b

изобрази тоже самое на CL, только чтоб функционала было раз в 5-10 больше.

**# ()
[#]  

Отличная новость.

Спасибо, качаю!

* ()
[#] Ответ на: комментарий от Rastafarra 21.05.2010 15:22:14  

> императивно (например VB): c = a + b

На CL это будет так: (setf c (+ a b))

> изобрази тоже самое на CL, только чтоб функционала

> было раз в 5-10 больше.


Сам понял, что сказал?

** ()
[#] Ответ на: комментарий от archimag 21.05.2010 15:28:58  
Rastafarra

> Сам понял, что сказал?

да. один говорит что фукнционала у CL раз в 5-10 больше на строку кода чем у VB, второй: что CL-ый код при решении был императивен.

я просто реквестировал пример императивного аццки-функционального кода. если не слива^W сложно, конечно.

**# ()
[#] Ответ на: комментарий от mv 21.05.2010 15:20:21  

> Чем "функционал" от "функционального программирования" отличается, сами найдёте?

Функционал — действительнозначная функция, областью определения которой является множество функций.

Я бы на вашем месте, не рискнул придираться к другим, столь слабо владея терминологией.

anonymous ()
[#] Ответ на: комментарий от DRVTiny 21.05.2010 14:35:13  
Reaper

> Честно, лучше бы интересные алгоритмы и общие моменты программирования освещали

Этого в интернетах достаточно.

** ()
[#] Ответ на: комментарий от DRVTiny 21.05.2010 14:35:13  
ott

в третьем номере была большая статья про алгоритмы и общие моменты, и такой же народ ныл, что все это теория и т.д.

P.S. насчет гениально писать на чем угодно - можно, но иногда очень тяжко и опасно для психического здоровья...

***** ()
[#]  
val-amart

обложка зачетная. статьи понравились, большое спасибо!

**** ()
[#] Ответ на: комментарий от anonymous 21.05.2010 15:35:21  

> Функционал — действительнозначная функция, областью определения
> которой является множество функций.


Обсуждали же уже это: http://www.linux.org.ru/forum/talks/3383357, сколько можно?

** ()
[#] Ответ на: комментарий от Rastafarra 21.05.2010 12:32:41  
Bioreactor

Не надо тега фап-фап. Для последователей проФФессора нужен тэг "inferiority complex".

Еще раз можно убедиться, что функциональщики - это секта.

http://fprog.ru/ и http://probudites.ru/ - Найдите 5 отличий

*** ()
[#]  
www_linux_org_ru

> Система типов этих двух языков программирования значительно выразительней, чем система типов Haskell и C++: например, обычные значения могут быть параметрами типа.

неосиляторы с++

в с++ адрес статической переменной может быть параметром типа

поскольку Miguel устранился от обсуждения, предложу еще раз формулировку тестовой задачи "dependent types":

есть класс Array, инстансы которого создаются с длинной, определяемой по вводу от пользователя, но далее неизменно; есть (НЕкоммутативная) операция +, которая конкатенирует два массива, длины складываются; есть scalar_product, работающий только на массивах равных длин

так вот, компилятор должен разрешать например

(a+b+c+d+e).scalar_product(a+e+d+b+c)

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

**** ()
[#] Ответ на: комментарий от archimag 21.05.2010 14:03:00  
Sun-ch

>Статья кажется не о том, что было сделано за последние 10 лет на Common Lisp.

Да всю суть в том, что ничего не сделано. Вообще. Что мы имеем на текуший момент? sbcl который, заметьте работает на одном лишь линаксе, в других системах даже поппержки потоков нет, о чем тут вообще можно рассуждать. Или взять тот же CLIM? За 15 лет не могут допилить, хотя не последние люди в проекте участвуют.

Вы все никак не можете понять, что время лиспа прошло 20 лет назад, когда его двигали в американских университетах очкастые хиппи с хорошими манерами. Все серьезные работы по этой теме - 90 годы прошлого века. Сейчас их место заняли прыщавые студиозы, но эти колбасятся с пистоном или руби в всем абсолютном большинстве.

Так что лисп - это философия разврата неокрепших умов.

# ()
[#] Ответ на: комментарий от NoName 21.05.2010 13:19:21  

Теперь ты присоединишься к остальным пяти его читателям. Шестым будешь.

anonymous ()
[#] Ответ на: комментарий от anonymous 21.05.2010 13:27:28  

> Где крики, что ФП не нужно???

"Не нужно" кричат, когда завидуют. Про Apple, про Android. А про то, что действительно не нужно, молчат. Потому как оно ненужно и обсуждения не заслуживает.

anonymous ()
[#] Ответ на: комментарий от Sun-ch 21.05.2010 16:06:18  
ott

потоки в SBCL на винде сейчас делаются, но это все дело упирается в некоторые ограничения винды...

P.S. Лисп, не без помощи кложуры вошел в 20-ку популярных языков (16-е место, насколько я помню)

***** ()
[#] Ответ на: комментарий от Sun-ch 21.05.2010 16:06:18  

> Да всю суть в том, что ничего не сделано. Вообще.

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

> sbcl который, заметьте работает на одном лишь линаксе


А другие системы очень важны? Ну тогда возьми Clozure CL, или заплатили за коммерческую реализацию (батарейки будут в комплекте).

> Или взять тот же CLIM? За 15 лет не могут допилить,

> хотя не последние люди в проекте участвуют.


Просто никому не нужен, да и сейчас уже есть cl-gtk.

> Все серьезные работы по этой теме - 90 годы прошлого века.


По какой теме? Какие есть серьёзные работы по Python? Лично меня не интересуют "серьёзные работы", а лишь только удобный практический инструмент.

** ()
[#] Ответ на: комментарий от mv 21.05.2010 14:40:25  

> Докажи, что парсер на сигнальном протоколе - унылое говно?

У меня flex есть и bison. Для практики. А матан всякий неизбежно унылое говно.

anonymous ()
[#] Ответ на: комментарий от r 21.05.2010 14:42:32  

> F# никто не пользует - его микрософт включил в дистру для галочки.

А так оно и есть, между прочим.

> Парсер-комбинаторы никто не пользует - дадада.

Используют. В boost spirit.

anonymous ()
[#] Ответ на: комментарий от ott 21.05.2010 16:17:01  
Sun-ch

Уже не нужно, т.к. все равно нет поддержки чисто виндовых фич типа COM, .Net и пр.

# ()
[#] Ответ на: комментарий от anonymous 21.05.2010 16:18:38  

> А матан всякий неизбежно унылое говно.

Не знающий матана - унылое говно.

anonymous ()
[#] Ответ на: комментарий от Sun-ch 21.05.2010 16:29:38  
ott

зато оно все есть в clojure, и .Net порт достаточно живой

***** ()
[#] Ответ на: комментарий от anonymous 21.05.2010 16:30:28  

> Не знающий матана - унылое говно.

Может быть, может быть. Но зато я сытое и довольное жизнью унылое говно, со своим неправославным bison-ом и еще мнее православным antlr. А функциональщики со своими матанистыми комбанаторами на жизнь озлобленные и голодные.

anonymous ()
[#] Ответ на: комментарий от Sun-ch 21.05.2010 16:29:38  

> Уже не нужно, т.к. все равно нет поддержки
> чисто виндовых фич типа COM, .Net и пр.


Вот я и говорю, что твоя проблема в узком кругозоре, посмотри например это: http://www.weitz.de/rdnzl/. Поддержка COM, .Net и пр. делается на уровне библиотек, а не реализаций. Впрочем, как я писал выше, оплатив коммерческую версию получишь реализацию с батарейками.

** ()
[#] Ответ на: комментарий от archimag 21.05.2010 16:18:17  
Sun-ch

cl-gtk

Это не лиспи стайл, а сплошная порнография, писать под гтк на лиспе в стиле с, это никаких нервов не хватит.

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

# ()
[#] Ответ на: комментарий от anonymous 21.05.2010 16:30:28  

> Не знающий матана - унылое говно.

Обоснуй.

** ()
[#] Ответ на: комментарий от ott 21.05.2010 16:32:38  
Sun-ch

clojure это не CL, хотя и сильно похож.

# ()
[#]  

...да и обложки радуют глаз

* ()
[#] Ответ на: комментарий от Sun-ch 21.05.2010 16:40:32  
ott

ну сначала говорилось про Lisp вообще...

***** ()
[#] Ответ на: комментарий от www_linux_org_ru 21.05.2010 16:04:03  

> предложу еще раз формулировку тестовой задачи "dependent types":

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

**** ()
[#] Ответ на: комментарий от archimag 21.05.2010 16:18:17  

> Какие есть серьёзные работы по Python?

на пистоне есть Sage

anonymous ()
[#] Ответ на: комментарий от ott 21.05.2010 16:32:38  
Rastafarra

> зато оно все есть в clojure

увы, кложура != CL. это «еще один» недолисп...

**# ()
[#] Ответ на: комментарий от archimag 21.05.2010 16:35:15  
Sun-ch

Да я прекрасно понимаю, что можно к лиспу прикрутить библиотеки на с/с++, через которые можно прикрутить все что ты захочешь, но это программирование на лиспе в стиле с/c++. В любой абстракции все равно вылезут эти ослиные уши.

# ()
[#] Ответ на: комментарий от Rastafarra 21.05.2010 16:44:33  

> увы, кложура != CL. это «еще один» недолисп...

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

У Пролога кстати такая же ниша, он рулит когда его встраивают в другие системы, и на хер не нужен сам по себе.

anonymous ()
[#] Ответ на: комментарий от Sun-ch 21.05.2010 16:45:17  
mv

> Да я прекрасно понимаю, что можно к лиспу прикрутить библиотеки на с/с++, через которые можно прикрутить все что ты захочешь, но это программирование на лиспе в стиле с/c++. В любой абстракции все равно вылезут эти ослиные уши.

А какой стиль программирования на лиспе православен?

***** ()
[#] Ответ на: комментарий от Sun-ch 21.05.2010 16:36:25  

> cl-gtk Это не лиспи стайл

Что ты в этом понимаешь?

> писать под гтк на лиспе в стиле с, это никаких нервов не хватит.


Что за манера рассуждать о том, о чём не имеешь представления?

> А CLIM - это стандарт между прочим, и нужен он очень многим


Просто древняя спецификация. Был бы нужен - была бы нормальная реализация. Впрочем, в составе LispWorks говорят такая есть.

> посколько работает везде где работает лисп


Кто работает? Стандарт работает? Или какая-то из реализаций CLIM работает на всех реализация CL на всех платформах? Ты либо чего-то ни того обчитался, либо съел что-то не то.

> а не сделали его по простой причине,


Кого не сделали? Было несколько реализаций CLIM, для разных платформ и реализация. McCLIM - более-менее современный open-source вариант.

> людям уже не интересно использовать лисп.


Что, совсем никому?

** ()
[#] Ответ на: комментарий от Miguel 21.05.2010 16:42:46  
www_linux_org_ru

>> предложу еще раз формулировку тестовой задачи "dependent types":

> Предлагай, сколько угодно, но скажи, что ты хочешь получить в ответ?

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

и да, если лень меня не поборет, предложу ее решение на с++ с вопросом к хаскелистам "а у вас так можно"?

**** ()
[#] Ответ на: комментарий от anonymous 21.05.2010 16:34:48  

> Может быть, может быть. Но зато я сытое и довольное жизнью унылое говно, со своим неправославным bison-ом и еще мнее православным antlr. А функциональщики со своими матанистыми комбанаторами на жизнь озлобленные и голодные.

Последняя вакансия, что я видел по Хаскеллю - Токио, 150К зеленых в год. Знаю, для Вас, конечно же, это мелочь :-D

anonymous ()
[#] Ответ на: комментарий от ott 21.05.2010 16:42:05  
Sun-ch

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

# ()
[#] Ответ на: комментарий от anonymous 21.05.2010 16:51:48  
mv

> Последняя вакансия, что я видел по Хаскеллю - Токио, 150К зеленых в год. Знаю, для Вас, конечно же, это мелочь :-D

Сишный принципал столько в штатах получает ;) При меньших ценах...

***** ()
[#] Ответ на: комментарий от www_linux_org_ru 21.05.2010 16:50:38  
www_linux_org_ru

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

ТОЧНЕЕ так:

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

и вообще, нужна хорошая, понимаемая людьми задача на эту тему

**** ()
[#] Ответ на: комментарий от Sun-ch 21.05.2010 16:52:16  
mv

> Но основной тезис о том, что лисп перестал развиваться остается в силе.

В нашей Вселенной, наоборот, интерес к Лиспу растёт.

***** ()
[#] Ответ на: комментарий от mv 21.05.2010 16:53:16  

> Сишный принципал столько в штатах получает ;) При меньших ценах...

А тут речи о принципале не было. ;) Хоть о джуниоре тожe...

anonymous ()
[#] Ответ на: комментарий от Miguel 21.05.2010 16:42:46  
www_linux_org_ru

> Предлагай, сколько угодно, но скажи, что ты хочешь получить в ответ?

ТОЧНЕЕ так:

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

и вообще, нужна хорошая, понимаемая людьми задача на эту тему

**** ()
[#] Ответ на: комментарий от Sun-ch 21.05.2010 16:52:16  

> Но основной тезис о том, что лисп перестал развиваться остается в силе.

Велика, однако, сила самовнушения.

** ()
[#] Ответ на: комментарий от anonymous 21.05.2010 16:51:48  

> Последняя вакансия, что я видел по Хаскеллю - Токио, 150К зеленых в год. Знаю, для Вас, конечно же, это мелочь :-D

Ага, ага. И таких вакансий аж пять штук на всю планету. Тогда как на C++ десятки тысяч вакансий от $200k p.a.

anonymous ()