Какой функциональный язык программирования выбрать при изучении структур данных и алгоритмов?

А теперь полная формулировка вопроса.
Я программирую на C# около 3-х лет.
В один прекрасный момент захотелось поподробнее изучить структуры данных и алгоритмы.
Изучая, программирую решения задач и реализовываю освоенные алгоритмы самостоятельно. Делать это на C# стало ужасно скучно (я это сразу осознал) и в связи с этим захотелось изучить новый язык программирования.
В целом, исключая C#, знаком с С++ и VB6.

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

Отдельно хотелось бы коснуться F# и выделить его главный недостаток для меня: это язык из платформы .NET, а мне хотелось бы изучить язык не принадлежащий к этой платформе (причина проста: не хочется класть все яйца в одну корзину).

Однако, я не против услышать аргументы за F#, если Вам хотелось бы настоять на рекомендации изучать именно его.
  • Вопрос задан
  • 7825 просмотров
Решения вопроса 1
EvilMan
@EvilMan
Собственно, рекомендую Scheme в комплекте с книгой «Structure and Interpretation of Computer Programs» (Структура и Интерпретация Компьютерных Программ aka SICP) за авторством Харольда Абельсона и сотоварищей. Если читать внимательно и выполнять хотя бы часть заданий, то очень неплохо освоить можно функциональное программирование, и на изучение функциональных языков уйдёт на порядок меньше времени. Если хочется более актуального языка, то Haskell или Erlang.
Ответ написан
Пригласить эксперта
Ответы на вопрос 8
No_Time
@No_Time
Если хочется хардкорно функционального подхода — то без сомнения haskell, но его изучение — весьма не простое занятие. Erlang легче, и по мне так понятнее, тем более что на нем легче писать вещи, не оторванные от мира сего=)
Ответ написан
Комментировать
bagyr
@bagyr
OCaml — тот же F#, только без CLR и чуть кривше.
Clojure — не такой марсианский как остальные Лиспы, но все равно интересно.
В идеале — Haskell.
Если интересно поковыряться в коде на F#, то github.com/jaredpar/VsVim.
Ответ написан
Комментировать
charon
@charon
Я не понял вашего предубуждения против F# — это почти тот же OCaml (программы OCaml полностью валидны в F#) — а Окамл — это очень нормальный функциональный язык, предшественник многих современных да и сам не отсталый.
Если вам нужен полный хардкор — то только Хаскелл. Ничто не сравнится с ним по современности и точности следованяи парадигмы.
Если заработать деньги — тогда лучше Эрланг. Но вообще идея заработать деньги на ФЯ весьма труднореализуема. Лисп тоже используется, но мне не понравился его внешний вид. Слишком много скобок, моя душа этого не выдерживает.
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
astrobeglec
@astrobeglec
На выбор — Си, Перл (особенно!), Питон. Можешь попробовать Пролог, весьма своеобразный язык программирования. Лучше всего попробуй несколько языков, а потом углубленно изучай понравившийся или тот который более удобен для решения твоих задач.
Ответ написан
EngineerSpock
@EngineerSpock Автор вопроса
А с точки зрения актуальности в плане процента применения в реальных проектах?
Ответ написан
Комментировать
Antelle
@Antelle
Не надо изучать структуры и алгоритмы, используя ФП-язык, это извращение.
Отдельно если хочется выучить именно ФП, наверное, посоветую классический для университетов Lisp. Практически он применим, например, AutoLISP в Автокаде.
Ответ написан
EngineerSpock
@EngineerSpock Автор вопроса
Судя по популярность языков, единственным функциональным языком в топе является Lisp.
Меня, всё-таки, не в последнюю очередь интересует возможность заработать хоть какие-то деньги на изучаемом языке.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы