LINUX.ORG.RU

Преимущества функционального программирования

 , ,


3

7

Чем оно лучше/хуже императивного программирования в плане разработке ПО? Какие крупные комплексы ПО были написаны (созданы) с использование этой парадигмы начиная с ее зарождения?

Перемещено mono из talks

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 3)
Ответ на: комментарий от Mihahail

Абсолютный ФП оказался вполне впихуем в xslt.

anonymous
()

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

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

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

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

Кто скажет, что Emacs не крупный, пусть первый бросит в меня камень.

Ну, Emacs ближе к императивному. Во-первых, ядро его на сишке; во-вторых, Elisp ближе к императивному из всех лиспов.

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

И что в нём нового, наверное в кругах нулёвых студентов-жабистов это что-то «принципиально инновационное», но это примитивщина. Фронтенд-шедулер+воркеры - этому подходу сто лет в обед. А то, что он добрался до твоей жабы только сейчас, ну ктож в этом виноват?

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

Emacs.

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

Давай ещё пытайся.

Carb_blog4
()

Какие крупные комплексы ПО были написаны (созданы) с использование этой парадигмы начиная с ее зарождения?

ghc, coq

И да, язабан.

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

Я разрушу твои мечты, но емакс написан на сишке.

Не угадал.

Emacs Lisp - 76%

C - 18%

25 Other - 6%

anonymous
()

Чем оно лучше/хуже императивного программирования в плане разработке ПО?

очевидно что ничем, просто другая парадигма

Какие крупные комплексы ПО были написаны (созданы) с использование этой парадигмы начиная с ее зарождения?

ничего, в институтах лабы пишут

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

ejabberd

вроде в ФП среде Erlang не считается ФП.

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

так на руби тоже ничего действительно крупного не осилили — руби оно как и питон хорош для мелки скиптов + (в отличие от) для мелких сайтов и всё.

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

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

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

Ну да, только там функции как переменные, лямбды используются шире, чем хотелось бы, ну и т.д. по пунктам. Конечно не хацкел, но все же фп присутсвует.
А что касается продуктов, само существование rails говорит о многом. Вообще, ящитаю, RoR вполне достоен средней сложности проектов.Конечно в высоконагруженных системах у java нет конкурентов (здесь и далее считаем дотнеты и прочие асп по определению не нужными), но в более простых приложениях RoR занял свою нишу, престав быть хипстерским фреймворком и став реальным инструментом разработки.
А вообще, ИМХО rails нужен хотя бы для введения в web программирования, понимания паттернов, и всяких там MVC и REST технологий.

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

и какие же разделы высшей математики там необходимо знать?

дискретная? :> мат. анализ для алгоритмов?

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

блять, сколько можно? сейчас в каждом более-менее современном высокоуровневом языке есть лямбды, на которые все вприсядку надрачивают, и map/fold/etc у аналогов iterable/traversable! чем он там тебя убивает?

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

Написание парсеров и трансляторов, например. Тут гораздо удобней писать в ФП стиле чем в императивном.

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

Я щитаю, что ФП-подход — это дрочево под компилятор, и ничего более, если кратко.

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

к компьютерам имеет примерно такое же отношение, как «астрономия к телескопам» (ц)

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

Вот про парсеры не надо. Что автоматы, что Packrat, что Pratt - все сугубо императивны.

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

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

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

что такое можно вычислить с помощью фп, чего нельзя императивно

))

Sonsee
()

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

Чем лучше? Чем дальше в ФП тем больше проверок, вплоть до полностью верифицированной программы. Но почти никому это не нужно, а большинству даже мешает.

anonymous
()

Если бы срач был в стихах, получился бы настоящий тру чОрный рэп)

Что-то типа:

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

Но однажды ....
 (тут завязка)...

(внимание кульминация):
- Что ты мне тут кукарекаешь, нулёвый?!
Я расскажу тебе как завязывать шнурки перед походом в школу,
Да какая школа, ты же ещё не закончил детского сада!
 (ну и так далее,
 дальше одни лишь пошлые словесные баталии).

(Тут развязка):
Но когда его спросили о коде,
Коде, который он написал вроде.
Он молчал в тряпочку и слышно было лишь звуки порывов ветра,
„Борщ стынет!“ - раздался голос матери героя... 
(ну и так далее, йоу)))


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

туда еще надо хор анонимусов включить

int13h ★★★★★
() автор топика

Императивные языки неудобны тем, что алгоритмы зачастую теряются в безднах анальной оккупации^W^Wоптимизации и борьбы за кроссплатформенность, в том же хаскелле, например, эти вещи можно зачастую скрыть нафиг с глаз долой и сосредоточиться на том, что твой код должен делать, а не как именно он это делает.

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

Dark_SavanT ★★★★★
()

ejabberd емнип

anonymous
()

Внезапно, ФП в виде Haskell и LISP тоже императивно.

Декларативными, насколько я знаю, является Пролог, Coq, РеФал и иже с ними.

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

Внезапно, ФП в виде Haskell и LISP тоже императивно.

Haskell

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

ФП в виде Haskell и LISP тоже императивно

ух ты

Декларативными, насколько я знаю, является Пролог, Coq, РеФал

ух ты!

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

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

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

Остальные участники дискуссии! Угарать над этим неадекватом, не знающим даже его любимый C и писать про него стишки — весело, но не эффективно! Ну кто-то забыл воспитать отпрыска. Не они первые, не они последние. Давайте тогда мы его воспитаем: научим вести беседу, поведаем ему, что «обосрался» не является логической связкой, расскажем, что будет при сложении двух char'ов, зачем нужен free, что такое это «функциональное программирование», что не все в мире написано на C, что такое LISP и сколько парадигм он обосрал, не зная даже их названий, подкачаем ему стиль и манеры, объясним, что он крут, если в беседе на истеричное говно исходит оппонент, а не он сам... Немного поднапряжемся коллективом, поигнорируем слишком толстые высеры, хотя бы основы теории аргументации ему преподадим — и к его совершеннолетию на ЛОРе взойдет новая звезда троллинга, с уникальным стилем, эмоциональностью слога и специфичным лексиконом.

P.S. А то жаль, право слово. КПД всего ресурса коту под хвост. Прискакал один клоун фонтанировать, Вы ему все радуетесь, а честному люду вроде меня потом после работы в квотезах почитать нечего.

t184256 ★★★★★
()

Ну хотя-бы seL4 (прототип на haskell). http://www.sigops.org/sosp/sosp09/papers/klein-sosp09.pdf Кстати с верификацией и прочими «прибамбасами».

The first refinement step lead to some 300 changes in the abstract spec and 200 in the executable spec. About 50 % of these changes relate to bugs in the associated algorithms or design, the rest were intro- duced for verification convenience.

и

the ormal verification has uncovered another 144 defects and resulted in 54 further changes to the code to aid in the proof. None of the bugs found in the C verification stage were deep in the sense that the corresponding algorithm was flawed.

Но вообще, это все неосиляторы - нормальные поцаны сразу пишут на Си, без всяких прататипав. И то, что на при имплементации жабы делали прототипы на прологе - конечно же 4.2

greatly to Wei Tao, together with Frank Yellin, Tim Lindholm, and Gilad Bracha, implemented the Prolog verifier that formed the basis for the specification in both Java ME and Java SE. Wei then implemented the specification

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