?

Log in

No account? Create an account
dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
Несем опиум в народ :) 
20th-Apr-2007 09:15 am
Написал короткую статью про ФП для developers.org.ua. Читайте, ругайте :)
Comments 
20th-Apr-2007 10:46 am (UTC)
Проблемы экономического и организационного характера, естественно, имеют значение.
Но т.к. мы обсуждаем статью для программистов, лучше сфокусироваться на технических проблемах, которые лучше решаются в рамках ФП. Пример Реймонта показывает, что сложность проектов, которые можно реализовать в сжатые сроки в одиночку, довольно высока; решаемые проблемы - не академические, а практические; я уверен, что Реймонт, пользуясь "игрушками для математиков", заработал совершенно реальные деньги.
Это важный момент, т.к. компаний, применяющих ФП на всю катушку, немного - можно повысить _собственную_ эффективность, решать _собственные_ локальные задачи на ФЯ, работая где угодно.
20th-Apr-2007 01:14 pm (UTC)
Я вот не решил ни одной локальной задачи средствами ФП. Потому как мне, как тупому админу никода не понять зачем люди придумали
1. этот нечеловеческий синтаксис
2. монады для IO
Поэтому тупо фигачу на python. Жаль что функциональный подход в нем как-то совершенно неразвит. Хотя я неверно хочу невозможного.
20th-Apr-2007 01:45 pm (UTC)
Монады - это долгая песня в дюнах, поднимать эту тему здесь не стоит (скажу только, что их применение не гораничивается вводом-выводом). Если они являются серьезным препятствием, можно взглянуть на другие языки, в которых ввод-вывод не использует монады.
А что такого нечеловеческого в синтаксисе?
increment = (+1)
even x = x `div` 2 == 0

Напоследок, пара ссылок на решения админских задач на Haskell (вторая более практичная, но, к сожалению, без понимания монад там не разобраться):
http://haskell.org/haskellwiki/Simple_unix_tools
Practical Haskell: shell scripting with error handling and privilege separation
20th-Apr-2007 01:46 pm (UTC)
s/гораничивается/ограничивается/
20th-Apr-2007 06:23 pm (UTC)
Про неограничивается я знаю. Может где-то они и нужны и полезны. Но IO через них - это издевательство над моим маленьким мозгом. Из чисто функциональных и не использующих монады мне известен только Clean. Всем хорош, но несколько нестабилен и его создатели любят винду, а я нет.
Теперь про синтаксис. Примеров приводить не буду, но на мой взгляд синтаксис недружелюбный для новичка. Я посмотрев на код почти любой haskell программы с ходу не скажу что она делает. Про python вот скажу, там все просто и понятно, а про haskell - нет. Конечно можно сказать что все придет со временем, но для этого это время у меня должно быть.
24th-Apr-2007 07:45 pm (UTC)
Ну, удобство написания и удобство чтения - это tradeoff, как не печально. Плюс - tradeoff сугубо индивидуальный.

Просто для сравнения поделюсь своим опытом.

Мне, например, сложнее понять, что делает питоновский код (как вспомню поптыки разобраться в потрохах bittorrent по reference реализации на питоне без единого комментария - так вздрогну) потому, что его сложнее "препарировать" и пробовать на зуб мелкими частями. Плюс - типы не выводятся, и чтобы понять, что делает метод от 7 аргументов, приходится его вычитывать ... Бррр...
24th-Apr-2007 07:42 pm (UTC)
Как было справедливо замечено, монады - это действительно долгая песня.

Надо нести монады в массы :) Например, привести пример кода, который простым изменением монады с Maybe на List изменяет свою функциональность с "поиск первого решения" на "поиск всех решений" ...
This page was loaded Nov 14th 2019, 3:18 am GMT.