Блог им. nikita +222

ФЯП

Расскажите-ка мне про функциональные языки программирования.
Что в них интересного, сложно ли изучить, стоит ли вообще с ними связываться?
  + 1 -    8 июля, 17:31     nikita     

Комментарии Фильтр

1
+ -
(define не-сложно (lambda x (print x)))

(не-сложно «учи Scheme»)
1
+ -
Интересного в них — подход к решению задачи. Он совершенно иной, и изучать его имея уже опыт программирования в императивном стиле, на мой взгляд, сложнее, чем если изучать ФЯП с нуля.
Так или иначе все будет сводиться к «формулировке» задачи на языке задачи. Т.е. в ФЯП ты имея некие примитивы на руках строишь из них новый язык, на котором твоя задача описывается легко и естественно. Разумеется есть много готовых библиотек.

Однако, основная, на мой взгляд, проблема все без исключения ФЯП — отсутствие УДОБНОЙ среды разработки. Все остальное с ФЯП полный порядок. Другой вопрос — зачем с ними связываться? Опять же — большинство задач вполне себе удобно решать в императивном стиле. Но мастер тем и отличается, что на каждую задачу он подбирает наиболее подходящий инструмент. К чему я клоню понятно, ФЯП не всемогущи, но для определенных задач подходят гораздо лучше, чем языки императивные.
1
+ -
Если решил поизучать, то лучше начинать с Scheme.

Во-первых он достаточно скромен и прост в плане синтаксиса (я бы сказал удивительно прост — основное правило — любое выражение нужно заключать в скобки — см. коммент выше :) ).
Во-вторых язык этот семейства Lisp и переходить на более «крутых» собратьев потом будет проще.

Отдельной строкой напишу про Haskell — да он адово крут, но для его изучения самому надо быть адово крутым (в большинстве случаев достаточно имень Н-ое количество бабла, что бы нанять того самого «адово крутого» и это будет круче и практичне… хм, увлекся).
-1
+ -
Начал все же с OCaml, нравится.
Потом уже перейду к Erlang и Scheme :)
1
+ -
Нахуа? :)
1
+ -
Erlang не понятно где использовать. По крайней мере для одного человека — слишком серьезная штука, что бы хоть как-то из этого выгоду получать.

OCaml — на мой взгляд не камильфо, могу ошибаться.
1
+ -
> Erlang не понятно где использовать.
Сервера писать, например :)
Хотя он пока действительно мне не особо и нужен, но будет интересно повозиться.

> OCaml — на мой взгляд не камильфо, могу ошибаться.
Вроде ничего так. Он мультипарадигменный, можно писать в императивном стиле, и даже есть ООП :)
Но в то же время присутствуют: а) понятный и отличный туториал для C++ и Perl-программистов б) все «красивости» функциональных языков — замыкания, лямбда-выражения, ленивые вычисления, карринг, и прочее и прочее.
По крайней мере, мне он показался нормальным, хотя я еще толком не смотрел Лисп… :)
1
+ -
>Сервера писать, например :)
Нет, где его применять можно, я в курсе. Не понятно что с ним делать фриленсеру, например :)
1
+ -
> Не понятно что с ним делать фриленсеру, например
Ну я Эрланг и прочие непопулярные языки и не с этой позиции рассматриваю. Выгоду напрямую оно может и не принесет — но зато расширит кругозор, что всегда полезно.
Кормят-то меня исключительно PHP и JavaScript, но кроме них мне очень нравится, к примеру, Python — хотя я им пока не заработал ни копейки :)
1
+ -
И то верно.

Ну, расскажешь потом о впечатлениях :)
1
+ -
Вот именно.
1
+ -
Oh shi~~
Scheme (Racket) достучался до моего сердца :)
Прекрасный язык. К черту Ocaml :))
1
+ -
Вообще-то я тебе о чем и говорил. В любом случае, пока что для начала нужен не механизм, а удобство и простота, что бы понимание пришло :)
1
+ -
Чем пользуюсь я.

По маленьку — всем. Когда есть время, я стараюсь что-нибудь изучить, а не сделать, что бы знать потом что можно, а чего низя (а это куда важнее самого навыка создания).

Вот наборчег:

DrScheme
LispWorks
GHCi
WinHugs

— Сайты у меня в закладках, которые я иногда посещаю:
www.daansystems.com/
lisper.ru/
lisp.ru/

— (print 'Удачи)
1
+ -
Да, забыл еще сказать — мой любимый SQL — чистой воды ведь ФЯП! :)
Только авторизованные пользователи могут оставлять комментарии. Авторизируйтесь, пожалуйста.
© 2009 — 2010 FreeGeo