LINUX.ORG.RU

выбор функционального языка для изучения for fun


0

2

хочу какой нибудь функциональный язык изучить for fun
основное требование - хорошие доки для начинающего, лучше на русском
область применения - математика
lispы не советовать, так как не переношу emacs а в любимом vimе на лиспах писать будет обидно )
прошу высказаться насчет haskell

>область применения - математика

fortran?

devl547 ★★★★★ ()

область применения - математика

Python (в нём есть ФП!)

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

не, не такая математика )))
решил подтянуть математику до уровня 1-2 курса техвуза, думаю заодно соответствующий язык изучить

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

lispы не советовать

ТС сам не знает чего хочет. Схема самое то. Кстати, задачи из SICP прорешивал как раз в виме со screen плагином.

baverman ★★★ ()

Scala, Ocaml, Haskell. Все три и одновременно. У каждого из них есть какая-то специфичная сторона, которая поможет в изучении. Например, Scala очень хорошо дружит с ООП, притом обладает достаточно уникальными штуками типа self-type annotations и path-dependent types. Кроме того, к товим услугам вся мощь многочисленных библиотек JVM.

OCaml не являктся чистым ФП языком, зато многоие вещи там решаются намного проще, кроме того сильной стороной окамла является поддержка разлапистой модульной системы а-ля SML. Его ООП-систему не особо жалуют, не знаю толком почему.

Haskell является чистым функциональным языком. И главная его проблема в том, что «традиционные» подходы там просто не работают. И ты будешь вынужден использовать ФП всегда, без возможности срезать острые углы как в окамле или скале. Зато будешь писать грамотный функциональный код, который потом очень легко читать и поддерживать.

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

Macil ★★★★★ ()

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

по теме: начни с хаскеля. быть может, им же и закончишь :)

dave ★★★★★ ()

Newspeak. Это круто и модно

yoghurt ★★★★★ ()

Ocaml

прошу высказаться насчет haskell

haskell - это модно.

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

Не надо портить Фактору репутацию, он не функциональный.

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

Ну лисп тоже не функциональный, но его же все предлагают.

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

Ну это проблемы лисперов и тех, кому его предлагают.

dmsh ()

Если интересует именно ФП, а не гремучая смесь императивщины и функциональщины, то лучший выбор - haskell (ну или Curry, который по сути Haskell + логическое программирование).
for fun можно изучить еще Unlambda

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

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

Прототипы - это же здорово.

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

> изрядно изгаженной стандартописателями реализацией.

А что не так?

archimag ★★★ ()

А зачем собственно тебе haskell? Если говорить о совершенно чистом ЯП, то скорее даже не хацкель, а Clean («чистый» диалект хацкеля), а так может стоит посмотреть в сторону Tcl/Tk? Писать в функциональном стиле позволяет, как и расширить язык в любую сторону (буквально вчера читал о реализации лямбд на нем - да они не из коробки, но запрограммировав их ты сам лучше поймешь как они работают), примеров кода на нем дофига, документация русская есть (в отличии от большинства ФП языков). Как еще одна плюшка - очень простой тулкит «изкаропки». После пистона перейти на Tcl в принципе не составит труда.

Про лисп - правда не стоит, если «не лежит душа», потратите время и в конечном итоге забьете (хотя тот же Scheme вполне ФЯ и очень гибкий). Кстати, а почему не F#? Неплохой диалект Окамла. Clojure тоже достаточно интересен.

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

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

anonymous ()

Haskell, только адекватной литературы, помимо «мягкого введения» не находил. Впрочем, есть Real World Haskell и YAHT на английском.

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

К сожалению, тут можно, если постараться, составить действительно большой список, поэтому я просто приведу пару-тройку без особой системы.

Непонятно что с численными типами. Точнее, как раз понятно - тип ровно один, который представляет собой ни что иное, как (если мне не изменяет память) IEEE754 float, который, ясное дело, подходит далеко не для всех задач. Хотя с этим можно жить, конечно.

Изначальная ориентация на то, что язык должен иметь look-and-feel «как у java». Обратите внимание на список зарезервированных слов (например тут). Особенно на те, которые в настоящий момент не используются. Язык изначально был рассчитан на «не самых лучших» разработчиков (по словам Douglas Crockford, который принимал участие в создании стандарта). Сами понимаете, ориентироваться на худших - не самая выигрышная стратегия.

Откуда-то взявшееся помещение всех объявляемых без `var' переменных в глобальный scope.

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

Я же сказал, что адекватной литературы на РУССКОМ мало.

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

>Я же сказал, что адекватной литературы на РУССКОМ мало.

А адекватной литературы на русском вообще мало.

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

>К сожалению, тут можно, если постараться, составить действительно большой список, поэтому я просто приведу пару-тройку без особой системы.

это про какой язык речь?

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

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

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

Я же сказал, что адекватной литературы на РУССКОМ мало.

Так лучше? Сам не читал, но выглядит достаточно адекватно.

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

Видел в ещё не законченном виде, поэтому на ум и не пришло. Возможно, сейчас уже вполне нормальный текст.

eliriand ★★ ()

>в любимом vimе на лиспах писать

меня лиспы заставили полюбить емакс и понять всю примитивность вима

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

> примитивность вима

чо? помедленнее, я записываю

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