Какой ФП язык выучить?

Доброго времени суток, решил я спросить у вас совета, уже месяц наверное читаю форумы всякие, хабр, тостер и тд, но никак не могу определиться с выбором. Очень хочется выучить какой нибудь функциональный язык программирования, сейчас пока программирую на swift и objective-c, но в будущем хотелось бы разнообразия, как то приелось это уже, ну вот хочется ФП и всё тут :D проблема в том, что нет никакого четкого ответа, если просто спросить "посоветуйте язык для начинающего" все скажут Си, а тут все наоборот, кто то советует хаскел, кто то скалу, кто то эрланг все хвалят свое болото, хотелось бы услышать плюсы и минусы основных на данный момент ФП языков, для чего тот или иной используется и где применяется, есть ли комьюнити (живое) и тд. Буду очень благодарен, если вы не поленитесь и постараетесь объяснить)
  • Вопрос задан
  • 4495 просмотров
Решения вопроса 1
@benoni
программер-любтель, иногда подрабатываю фрилансом
Еще есть:
- Nemerle (тоже дот.нет, как и упоминавшийся F#, но инфы про немерле мало),
- Rust (набирающий известность от мозилы, есть вроде даже книженция на руссом),
- hy (лисп для питона, пока он больше экспериментальный),
- Elm (хаскелеподобный язык, компилируется в JS),
- Common Lisp (классический лисп, так сказать),
- Scheme (больше учебный диалект лиспа, хотя есть Racket (диалект Scheme), который вроде кем-то даже для продакшена применяется),
- Prolog (наиболее известный язык логического программирования).

А так плюсы минусы наиболее популярных:
- Erlang (ПЛЮСЫ: один из наиболее легких в изучении ФП языков, применяется в продакшене в сфере телекоммуникаций, а также в последнее время в вебе, в основном чаты и т.п.; МИНУСЫ: не является языком общего назначения, специфический прологовский синтаксис).
- Clojure (ПЛЮСЫ: довольно легкий в изучении, JVM-платформа, ClojureScript (диалект кложуры для компиляции в джаваскрипт), есть порт на .NET-платформу, лисп; МИНУСЫ: JVM-платформа, другие реализации менее развиты, лисповые скобочки на любителя).
- F# (ПЛЮСЫ: поддерживается майкрософтом и заточен под .NET, МИНУСЫ: ограниченность .NET-ом).
- Scala (ПЛЮСЫ: набирает популярность, может через время очень потеснить джаву, доступна и ООП и ФП парадигмы, мощный, МИНУСЫ: сложный для новичнов в ФП).
- Haskell (ПЛЮСЫ: очень мощный, практически универскальный, многие фишки современного программирования пришли из хаскеля, МИНУСЫ: довольно сложный для новичков, как и скала).

P.S. я бы выбирал из кложуры, эрланга и хаскеля.
P.P.S. если интересно в целом для себя можно ограничится Scheme и изучением SICPа.
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
Если в академических, то, как ответили выше, учите Haskell, а лучше [сразу или потом] Agda2 с зависимыми типами, узнаете много нового.
Ответ написан
Комментировать
@protven
+1 к leventov. Только Clojure, а не closure. Это если просто поучить хотите, вакансий по кложуре в России мало. А если с прицелом на будущую работу, то лучше Scala или Erlang.
Ответ написан
Комментировать
leventov
@leventov
Еще забыли Лисп и диалекты, например Clojure. Еще есть OCaml,

Все оно плюс-минус одинаково, поэтому советую учить что самому больше нравится.
Ответ написан
@PolkovnikBrumel
Недавно в курсе по C# на MVA как раз наткнулся на небольшую лекцию про F#. Там сравниваются разные функциональные языки. Кратко, но может, найдете что для себя интересное. Вот ссылка, см. прямо в первом блоке курса:
www.microsoftvirtualacademy.com/training-courses/t...
Ответ написан
Комментировать
@FoxInSox
Если вы хотите выучить язык просто так("для разнообразия"), то я бы на вашем месте расхотел.
Ответ написан
Комментировать
@Shetani
В понедельник как раз начинается курс по хаскелю
Ответ написан
Комментировать
@potan
Функциональный программист
Для начала можно взять ELM. Тем более для него сделана поддержка джаваскриптовой библиотеки react-native, позволяющей делать программв под Android и iOS.
Для полноценного погружения надо осваивать Haskell.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы