LINUX.ORG.RU
ФорумTalks

ФЯП


0

0

Расскажите про ФЯП, в частности о Haskell. Неужели это такое уж марсианское поделие, на котором не пишешь, а разговариваешь? В чем конкретно фишка? Wikipedia не дала мне полного просветления, очень хотел бы комментариев очевидцев.

P.S. И есть ли у этой байды перспективы?

★★

> P.S. И есть ли у этой байды перспективы?

Смотря где.

Sikon ★★★
()

> Расскажите про ФЯП

Это круто :)

> И есть ли у этой байды перспективы?

Умереть не умрет, но массово использоваться не будет.

ps просто взгляд реалиста

defmacro
()

У нас в универе был предмет Prolog - правда, преподавательница его сама не понимала до конца :( Вещь любопытная, но пока реализуешь привычные алгоритмы на нем, сломаешь весь мозг. Достаточно взглянуть на реализацию quicksort на прологе ;)

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

>Умереть не умрет, но массово использоваться не будет.

Тоже самое говорили о питоне и других зверушках несколько лет назад.

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

> Тоже самое говорили о питоне и других зверушках несколько лет назад.

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

ps 2anonymous да да, я уже записался на прием

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

> Говорите, что знаете - им все равно в одном котле вариться.

Честно не понял что ты хотел сказать :)

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

> Достаточно взглянуть на реализацию quicksort на прологе ;)

А зачем это делать на нём? Чисто из спортивного интереса?

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

> Ну у пайтона только синтаксис слегка необычен, а тут другая парадигма, сознание надо менять.

не менять, а расширять. проще говоря - накуриться перед программингом :)

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

>А зачем это делать на нём? Чисто из спортивного интереса?

Нам на зачет задали реализовать сортировку на нем. Естественно, сам никто написать не сумел (учитывая то, КАК нам преподавали сий предмет), вот я в тырнете и нашел. Пытался понять quicksort на прологе, да не вышло. Сдавал merge sort - там хоть понятнее ;)

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

> Так все-таки какие задачи на них решаются лучше?

Ну вообще говоря апологеты ФП утверждают что любые задачи, кроме тех которые императивны по своей природе...

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

Лепота конечно лепота, только уж больно неэффективно... =)

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

> Вещь любопытная, но пока реализуешь привычные алгоритмы на нем, сломаешь весь мозг

А не надо на нем реализовывать привычные алгоритмы. На нем надо реализовывать только то, что на привычных языках сделать нельзя или можно, но слишком сложно.

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

Так, конечно, сразу Пролог не понять. Для начала надо понять предикативную логику, дизъюнкты Хорна etc.

stassats ★★★★
()

1) Нет, это не поделие. 2) Фишка - в более мощных абстракциях, в большей безопасности программирования. 3) Есть, раз уж Эриксон разработал свой ФЯ, а Майкрософт - как минимум, два.

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

>Тоже самое говорили о питоне и других зверушках несколько лет назад.

Петон не умер. Но массово используется только в специализированной с математическим уклоном школе для синих детей №1995. На нем там пишут проги для составления расписания дежурств по классу

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

>А с каких пор пролог стал ФЯП???? Это язык логического программирования.

Для меня функциональные и логические из одной оперы - декларативные...

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

>а Майкрософт - как минимум, два.

Х.ня, какие два. Двадцать, а то и все тридцать. И даже интернет был секретным проектом Microsoft, тока злобные фитишисты надомники военные выкрали его и продали Советам. А от них он уже утек в интернет

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

>Есть, раз уж Эриксон разработал свой ФЯ, а Майкрософт - как минимум, два.

MSовцы знаменитые велосипедасты. Видимо Баллмер увидел у кого-то и сказал "дайте две!"

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

Тем не менее, вопрос было про функциональные языки. А обобщать можно как угодно... Тем более что "способ думать" функциональный от логического нехило отличается.

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

>Вот, кстати, с функциональными языками ответ будет шашечки :)

ну неправда, попробуй написать выше приведенный пример на си и сравни выразительность

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

> Вот, кстати, с функциональными языками ответ будет шашечки :)

> ну неправда, попробуй написать выше приведенный пример на си и сравни выразительность

Так шашечки -- это и есть выразительность.

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

>Так шашечки -- это и есть выразительность.

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

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

cvb
()

в толках недавно была занимательнейшая ссылка на sql.ru, сходи почитай :)

Muromec ☆☆
()
Ответ на: комментарий от cvb

Различие будет недетское. Вышеприведенный код на Haskell хорош для объяснения студентам самой концепции quick sort. Он плох как реализация quicksort-а. Хотя бы тем плох, что поворотным элементом всегда выбирается первый, что во многих случаях просто очень глупо. Если же на Хаскелле написать полноценную, серьезную реализацию quicksort-а, то получится не менее нечитабельная мешанина, чем на C++.

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

> > извините, но вы рассуждаете как быдло ;)

> и вас туда же любезнейший :)

какие все вежливые, аж противно :D

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

особенно, если учесть, что qsort на C++ переходит в пузырьковую
сортировку при малом кол-ве элементов в массиве/списке, так что qsort на хаскелле очень неэфективен :((.

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

т.е. ФЯ подходят далеко не всем и не всегда(банальная истина :) )

ЗЫ - изучать хаскель не прошу :))


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

s/не прошу/не брошу/

- прямо по фрейду оговорочка ))

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

>Различие будет недетское. Вышеприведенный код на Haskell хорош для объяснения студентам самой концепции quick sort. Он плох как реализация quicksort-а. Хотя бы тем плох, что поворотным элементом всегда выбирается первый, что во многих случаях просто очень глупо. Если же на Хаскелле написать полноценную, серьезную реализацию quicksort-а, то получится не менее нечитабельная мешанина, чем на C++.

ну а если сравнить по скорости текущую реализацию на си и хаскелле( ту что в одну строку) - таким ли уж большим будет отставание? ну и если серьезная реализация будет нечитаемой - где же фича хаскелла?

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

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

может просто другой подход к написанию пока не кажется тривиальным и незапутанным, я тож почитав флейм недавний на sql.ru решил этим языком заняться, правда пока никуда не применял, но примеры кода на нем выглядят впечатляюще, так что доучу точно, в крайнем случае можно будет на форуме умничать:)

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