LINUX.ORG.RU

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

 , , , , , ,


0

0

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

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

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

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

★★★★★

Проверено: maxcom ()

В самом начале темы я был обеими руками за лисперов, не сейчас я посмотрел на этот фанатизм и решил с ними сильно не связываться. Лисп - неплохой язык, с этим спорить не буду. Но бредни про статическую типизацию (хоть я её в своём перле не очень-то и юзаю) и необоснованые нападки на все остальное (так какие-же все-таки проблемы у darcs? кроме того, что это не git?) отбили желание защищать неплохой по сути своей язык.

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

> да у тебя с головой просто проблемы.

общайтесь тогда с «мухами» - они все нормальные

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

> и почему же там до сих ничего полностью не формализовано? Было бы же здорово, если бы была система аксиом, из которой все бы можно было получить? Беда только в том, что реальность - это одно, а математика нечто другое. Математика - очень полезный и нужный инструмент, но нужна знать границы возможностей и понимать смысл математики в естественных науках. Тоже самое касается и программирования.

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

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

> Некоторые «программисты» только и умеют, что жать на кнопку «Любая_кнопка». Не судите по не пойми кому ;) Матанализ, дискретная математика, вычислительная математика, аналитическая геометрия, статистика и прочее. Это только те разделы математики, которые изучают студенты авиационных институтов по второй курс включительно. Потом все значительно хуже - гидравлика (не думайте, что это «переливание жидкостей из пустого в порожнее», это куча уравнений), сопромат, теоретическая механика, пластичность, упругость (конечные елементы, тензоры напряжений и прочее). И так далее и тому подобное. Много всего и в основе всего математика.

А самолеты делают и проектируют, отнюдь не математики, парадокс.

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

> Не судите по не пойми кому ;)

Ну да, ведущее российское предприятие по проектированию энергетических установок космических кораблей, некоторые (включая начальника проектного отдела) до этого работали в КБ «Сухого», это конечно «не пойми кто», сам то кто такой?

Это только те разделы математики, которые изучают студенты

авиационных институтов по второй курс включительно.



Угу, я тоже изучал квантовую механику и ОТО, и что у меня в итоге осталось? У нас было несколько «свежих» выпускников Харьковского института, угу. Основой проектных решений является вовсе не математика, а принятые решения проверяются тысячами часов экспериментов. Корреляции между уровнем инженера-конструктора и знанием математики на практике не налюдается. В конце концов, в отделе была отдельная группа (в которую входил я), которая занималась выполнение численных расчётов. А конструкторы до такого не опускаются, угу.

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

> :) у вас есть степень в экономике, или хотя бы экономическое во?

ну что вы, бросьте, я вообще в первые про всё это слышу, а ляпнул так, чисто поддержать беседу

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

> так какие-же все-таки проблемы у darcs? кроме того, что это не git?

Переодически ломает репозиторий и виснет.

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

> В самом начале темы я был обеими руками за лисперов, не сейчас я посмотрел на этот фанатизм и решил с ними сильно не связываться.

Вот, кстати, распространённое заблуждение — судить о сообществе по отдельным её представителям (особенно здесь, а не в «официальном» списке рассылки).

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

> А самолеты делают и проектируют, отнюдь не математики, парадокс.

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

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

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

:) у вас есть степень в экономике, или хотя бы экономическое во?

Отчасти он правильно говорит. Я уже написал: гугли «системная динамика». Только модельеры (не знаю как правильно перевести modeler) сами дифф.уры не решают. Наверное, и не умеют ;) Это делают компьютеры за них. Что касается CEO, то по идее они должны были учить в университетах эту область.

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

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

Я вот в-основном читаю англоязычные ресурсы и mail-list'ы, так там такого обычно нет. Даже любители X порой говорят о том, что вот в X есть такие-то проблемы, а в Y это, возможно, лучше...

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

> И ещё: скажите, это только русские люди так нетерпеливо и резко отзываются о нелюбимых языках/технологиях.

таки да - в странах бывшего СССР градус неадекватности заметно выше, даже на зарубежных форумах «наших» можно узнать по необоснованной агрессивности

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

> Ну да, ведущее российское предприятие по проектированию энергетических установок космических кораблей, некоторые (включая начальника проектного отдела) до этого работали в КБ «Сухого», это конечно «не пойми кто», сам то кто такой?

Пардон, если у них с арифметикой не лады, о каких самолетах речь? Чем им поможет «ведущесть» их КБ?

Угу, я тоже изучал квантовую механику и ОТО, и что у меня в итоге осталось?

Зависит от того «на кого учились» и кем сейчас работаете. Я работаю не по специальности и из математики у меня только векторная алгебра, но зато с утра до вечера :)

У нас было несколько «свежих» выпускников Харьковского института, угу.

Вы в курсе различий в уровне образования до развала и после него? Пропасть. Равно как и пропасть в проектировании. Оно практически мертво.

Основой проектных решений является вовсе не математика

Ну да? :-D Вот чем дальше в лес, тем Вы толще. Говорите только о том, о чем хотя бы имеете представление и к Вам поянутся люди. Даже банальный рассчет самолета в нулевом приблишении уже математика. Детская, правда.

А конструкторы до такого не опускаются, угу.

Лол, т.е. конструктор стоит у мольберта и малюет? Ппц.

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

>Я вообще никогда не комментировал код, ибо так завещал ещё Страуструп (он указывал, что использует комментарии в начале файла для описания используемого алгоритма и ссылка на материалы по проблеме, но не в самом коде).

А я комментирую, но только там, где это очень важно. Например, обязательно пишу documentation string у всех функций, которые предназначены для взаимодействия с пользователем, а те, которые не предназначены, не документирую (иногда пишу обычные комментарии в коде). И считаю это правильным. Я редко читаю documentation string в CL, но на них всегда ориентируюсь в Emacs Lisp, потому что культура документирования переменных и функций у авторов программ и библиотек для Emacs несравненно выше, чем в CL.

Однако есть авторы, которые начинают документировать, что не попадя: и внутренние переменные, и вспомогательные функции. Когда пишешь для Emacs, то при отсутсвии документации в пакете, ориентируешься именно на documentation string. А потом оказывается, что забазировался на переменной, которая вообще subject to change и вообще не была предназначена для использования (т. е. не являлась частью API). В итоге имеем dirty hack. Зафиг ее документировать, а?

А еще бесят сбивающие с толку комментарии. В McCLIM, например, комментарии ;; XXX hm... или ;; XXX What about sheet? Млять, ну и что мне теперь думать — человеку, который в этом коде разбирается? Нельзя было нормально написать, в чем проблема?

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

>на люблю Java - но опытные жаберы тут заткнут любого лиспера по скорости и качеству разработки

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

Sun-ch ()
Ответ на: комментарий от oh

>Но бредни про статическую типизацию

Это не бредни. Прямо переложить на статические типы, типы подразумеваемые в модели, - практически невозможно, в 99% никакой модели нет, либо она меняется, и моделей может быть несколько, из различных областей. Примеры есть в любой книге: не нуль, овал-круг, прямоугольник-ромб-квадрат-четырёхугольник.

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

по-моему это больше относится к маргинальщикам :)

Ну не знаю... Например, мантейнер гну смоллтолка вполне себе мужских пропорций. Борода, опять же, присутствует...

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

> Ну не знаю... Например, мантейнер гну смоллтолка вполне себе мужских пропорций. Борода, опять же, присутствует...

а если взять Столлмана, например?

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

>> Ну да, ведущее российское предприятие по проектированию энергетических установок космических кораблей, некоторые (включая начальника проектного отдела) до этого работали в КБ «Сухого», это конечно «не пойми кто», сам то кто такой?

Пардон, если у них с арифметикой не лады, о каких самолетах речь? Чем им поможет «ведущесть» их КБ?

по секрету, тока чур ни кому:

1) главный технолог Авиастара не умеет отправлять sms

2) главный технолог ТАНТК не умеет в офисе делать надпись жирным шрифтом

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

таки да - в странах бывшего СССР градус неадекватности заметно выше, даже на зарубежных форумах «наших» можно узнать по необоснованной агрессивности

Ты LKLM не читаешь... ;)

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

>А самолеты делают и проектируют, отнюдь не математики, парадокс.

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

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

> Равно как и пропасть в проектировании. Оно практически мертво

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

Говорите только о том, о чем хотя бы имеете представление


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

Даже банальный рассчет самолета в нулевом приблишении уже математика


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

конструктор стоит у мольберта и малюет?


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

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

> 1) главный технолог Авиастара не умеет отправлять sms

2) главный технолог ТАНТК не умеет в офисе делать надпись жирным шрифтом

Смешно конечно, но: 1. Не относится ни коим боком к математике 2. Практически все хорошие специалисты имеют приличный возраст и новомодные штучки не воспринимают.

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

а если взять Столлмана, например?

Не знаю, лично не видел.

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

> Это не бредни. Прямо переложить на статические типы, типы подразумеваемые в модели, - практически невозможно, в 99% никакой модели нет, либо она меняется, и моделей может быть несколько, из различных областей. Примеры есть в любой книге: не нуль, овал-круг, прямоугольник-ромб-квадрат-четырёхугольник.

Это камень в огород ООП - LSI и прочее, в функциональном программировании этой проблемы нет.

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

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

Предлагаешь полностью заменить опытные испытания компьютерными?

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

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

В МЖГ вся математика подстроена под наблюдения. Что не наблюдаем, либо не смогли объяснить, там математики нет. Работа инженера-проектировщика - это нормы, методы и таблицы, а не креативная математика.

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

из последнего есть новость - http://www.f1news.ru/news/f1-58029.html

чуваки изменили аэродинамику машины, причём под днищем!! и расчёты было время сделать только полагаясь на компьютер.. в итоге дубль!

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

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

Sun-ch ()
Ответ на: комментарий от Sun-ch

> Когда натурные испытания заменяют рассчетами на суперкомпьютерах.

Это на самом деле от бедности, в России и Штатах настроили этих труб очень много в своё время, зачем делать расчёт если можно в трубу запихнуть? А вот в Европе с трубами проблема, их дорого строить, вот и выдумывают разное. И не конструкторы такими расчётами занимаются.

Или ты сразу из головы готовый самолет нарисуешь?


Ещё раз: никто в здравом уме и памяти не будет делать новый самолёт с нуля.

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

> Я как раз говорю о том, чем непосредственно занимался около 4 лет, знаю как поставлен процесс и о чем говорят конструкторы. Вы же похоже совершенно не представляете, в чем заключается конструкторская деятельность.

Полез под стол :-D О том насколько Вы далеки от инженерного дела говорит вот это Ваше:

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

Это реально RTFM!

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

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

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

> А кто там тогда работает? О_о

у него там просто т9 включен и он не знает как его отключить 8-D, точнее он не знает про т9 и в упор не понимает почему у него кракозябры вместо сообщения

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

Практически все хорошие специалисты имеют приличный возраст и новомодные штучки не воспринимают.

Что характеризует их как старых мудаков. У меня знакомый в 70 лет ради интереса начал изучать С, через два года он программировал намного лучше своих «учителей».

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

>Это камень в огород ООП - LSI и прочее, в функциональном программировании этой проблемы нет.

как и самих типов?

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

> Это на самом деле от бедности, в России и Штатах настроили этих труб очень много в своё время, зачем делать расчёт если можно в трубу запихнуть? А вот в Европе с трубами проблема, их дорого строить, вот и выдумывают разное. И не конструкторы такими расчётами занимаются.

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

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

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

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

Так что такое «банальный расчёт самолёта в нулевом приближении»? Я же сказал, что из космоса, а не из авиации, у нас такого понятия не было, вот и интересно узнать что имеется в ввиду.

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

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

Sun-ch ()
Ответ на: комментарий от lg

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

Есть такое понятие - масштабная модель. Вы видели модели истребителей в сверхзвуковых трубах? Размер около 30см. Какие там 10 метров :-D Почему трубы при СССР рулили? Даже если забыть на время про численные методы вс эксперимент - тогда это был единственно возможный способ хоть в СССР, хоть в Америке.

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

вот бы такое на ИжАвто, а то у они после краш теста Иж Оды манекена не смогли найти в груде металла

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

Это безумно дорого, даже для США, особенно для испытаний больших самолетов. Только СССР мог себе позволить такие траты и то очень недолго.

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

30 см это жопа! даже болиды f1 гоняют в трубах в размерах 1/2

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

Ты получишь очень грубое приближение, фактически только «посмотреть.» Догадаешься почему нельзя сделать точную копию автомобиля в масштабе 1:25 и почему она не будет работать?

Sun-ch ()
Ответ на: комментарий от archimag

> Так что такое «банальный расчёт самолёта в нулевом приближении»? Я же сказал, что из космоса, а не из авиации, у нас такого понятия не было, вот и интересно узнать что имеется в ввиду.

Приближения есть везде. Хоть в космосе, хоть в авиации, хоть в кораблестроении. Начинается все с определения требуемых ТТХ, сбора статистики, определения основных геометрических параметров и т.д. Это нулевое приближение. И далее идем от общего к частному, от всей конструкции к узлам, от приблизительных параметров к более точным. Удивлен, что Вы этого не знали. Ведь программировании все в общем-то похоже. И к рассчету «с нуля» :-D приближения не имеют никакого отношения.

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

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

И писать программы, отличные от yet another player or screensaver. Как только захочешь писать трассировщик печатных плат, скажем, то что ты тут без матеша делать будешь? Сейчас горячие головы скажут, что алгоритмы все есть — бери и реализуй. А вот фиг! Во-первых, многие алгоритмы имеют свои ограничения, о которых надо иметь представление. Не зная предмета, ничего сделать нельзя. Во-вторых, из-за специфики задачи никакие готовые алгоритмы не годятся. Каждый раз их надо переделывать, совершенствовать. Если плохо учился, то и не осилишь.

Все простые задачи на этой плнете уже порешали. а вот сложные задачи требуют знаний как минимум в области CS, а как максимум — в математике. Пишешь ли ты что-то в области Computational Geometry или какой-нибудь симулятор нелинейных систем, или симулятор электрических схем, обработка изображений, АСУ, цифровая фильтрация и много всего другого, чего я не буду перечислять. И серьезные инструменты для экономического анализа — туда же. И искусственный интеллект. Это все пронизано насквозь от обычного дифференциального и интегрального исчисления до дискретной математики.

Другими словами, тезис о ненужности математики в программировании я отвергаю, как ложный.

Zubok ★★★★★ ()
Ответ на: комментарий от Sun-ch

> Вроде Дженерал Моторс очень активно работает в этом направлении

Тот-то они на грани банкроства ;) На самом деле отлично, что прогресс идёт. Только вот фокус, ведь занимаются этим не проектировщики. Вообще, по машиностроению сейчас отличная ситуация, ибо для машиностроения 3-ём мерное проектирование работает очень хорошо (в отличие от разных больших протяжённых конструкций), сейчас конструктору вообще уже не надо уметь выполнять никаких численных расчётов: создал модель, запустил расчёт и сразу увидел, например, «карту» механических напряжений. Т.е. физики/математики составляю модели, программисты их реализуют в софте, а проектировщики используют софт.

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

>А типы есть.

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

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

> Другими словами, тезис о ненужности математики в программировании я отвергаю, как ложный.

да я разве спорю?! это не мой тезис был, я как раз и пытался человеку намекнуть на обратное

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

> Т.е. физики/математики составляю модели, программисты их реализуют в софте, а проектировщики используют софт.

Как Вы сможете написать софт не зная предметную область? Чем сложнее предметная область, тем меньше у Вас шансов что-то под нее написать.

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