LINUX.ORG.RU
ФорумTalks

Зачем вообще нужно функциональное программирование?


0

1

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

  • XMonad - тайловое поделие для красноглазиков. В силу ущербности языка, для добавления элементарных фишек фреймовых оконных менеджеров нужно переписать ядро;
  • Emacs - тренажер для пианистов от малонужного красноглазого хиппи.
  • Кучка скобочных поделий, не запускающихся без бубна и падающих от каждого чоха
  • Сообщество гиков, мечтающих купить что-нибудь в интернет-магазине, написанном на предмете своего фетиша;
  • Кипы бумаги, имитирующие труды математиков (в реальной жизни без всякого заззрения пишущих на Delphi/Pascal)

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

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

При этом в плане производительности у мапа нету преимуществ перед циклом, всё одинакого тормозить будет :)).

Здрасте я ваша Тетя приехала из Питера! Мне рассказать разницу между мапом и циклом или вы сами исправитесь?

demmsnt
()

по-моему не нужны пуристы или,говоря по-русски, любители самых чистых подходов. Начнем с того что работы Поста весьма важны при решении задач, использующих булеву алгебру. Далее сами по себе приемы функционального программирования в сочетании с другими методами программирования повышают эффективность программы, могут сделать код более лаконичным. Та же рекурсия умирать вовсе не собирается, а наоборот немалое число алгоритмов самым активным образом ее используют(хотя бы та же Быстрая сортировка). Далее а куда мы денем целый пласт активно используемых идей в ИИ, которые проверялись и реализовались на Lisp. Таким образом ФП нужно благодаря тому что в сочетании с другими стилями программирования улучшает код, помогает появляться новым идеям. По поводу же новых исследований в том числе и с использованиям ФП конечно так или иначе они входят в мейнстрим, некоторые не входят,однако это совершенно не повод кричать что ничего не делается и за пределами Boost есть жизнь, если знать границі применения инструментов, а не радикально отрицать.

pylin ★★★★★
()

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

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

4.2. Emacs Lisp и AutoLisp имеют неиллюзорное применение и в опенсорце, и в проприетарщине.

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

Я же написал _почти_ все. Что-то на Python тоже делают, но даже до maxima там ещё долго пилить надо.

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

XMonad - ненужен.

Ну ты и так уже всё сам про себя понял и знаешь...

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

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

Дело привычки.

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

Шарлатаны там тоже встречаются, но обычно они даже не понимают, что они шарлатаны. Проблемы образования.

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

Одна - представить упорядоченную последовательность разношерстных объектов

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

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

У ПЕЙТОНА отличный синтаксис.
http://ru.wikipedia.org/wiki/Конкатенативный_язык_программирования
http://factorcode.org/

quantum-troll ★★★★★
()
Ответ на: комментарий от HerrWeigel

Стесняюсь спросить: это вброс?

Ага, вбросил и убежал. ;)

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

ООП нужен потому, что отражает способ моего мышления :)

Ну вот, а способ моего мышления отражает скорее ФП ;)
А если вообще и серьезно, то алгебра - у меня почти полностью алгебраическое мышление (статейку всем очень рекомендую).

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

ООП нужен потому, что отражает способ моего мышления :)

А твоё мышление основано на передаче сообщений или на обобщённых функциях?

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

Собственно, я об этом.

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

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

хотелось бы работающий емакс на common lisp или scheme

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

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

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

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

Похоже, что интегрирование по-прежнему является творческим процессом. http://shmat-razum.blogspot.com/2010/05/blog-post.html

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

Начинай отсюда

Сперва объясни вот что. Если Бронштейн знал точное решение, то почему он, будучи разработчиком Axiom, его не воплотил? Почему он вместо этого указал на проблемы и ограничился для их решения эвристиками?

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

Честно? Не знаю. Понятия не имею, почему полной реализации алогритма Риша и всех нашлепок сверху до сих пор нет (хотя аксиом ближе всех к полной).

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

А может вычислительная сложность высокая. Не знаю.

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

Да, спасибо за ссылочку, там все четко разжевано.

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

При условии необратимого перла обоих полушарий головного мозга.

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

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

vvff
()

А чего про эрланг забыл? Или это не функциональный язык?

  • ejabberd - самый распространенный и свободный jabber-сервер, держащий огромное число клиентов на обычном железе.
  • rabbitmq - единственный юзабельный AMPQ-брокер. Коран и библия для кластерных приложений. Недавно куплен вмварью за миллионы зеленых денег.
  • github, disqus, ...;
shahid ★★★★★
()

вы как будто вчера родились! вот исчерпывающий ответ.

\thread

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