С чего начать изучать функциональое программирование джависту?

Около двух лет работаю разработчиком на Java, несколько месяцев назад начал использовать восьмерку. Недавно посмотрел лекцию по введению в ФП, понравился стиль мышления. Хотелось бы познакомиться с ним поближе, хотя не думаю, что он может прямо сейчас пригодиться в работе.
Как вы считаете, какой язык лучше всего подошел бы для знакомства? С более глубокими особенностями инфраструктуры (вроде вопросов о том как работает gc в джаве) разбираться не хочется, цель именно в том чтобы научиться мыслить в функциональном стиле.
Еще будет очень хорошо если подскажите курсы на русском или английском языках по предложенному языку - чтобы выполнение заданий было привязано к недельному плану. Но это опциональная хотелка.
Спасибо за ответы!
  • Вопрос задан
  • 523 просмотра
Решения вопроса 1
lxsmkv
@lxsmkv
Test automation engineer
A как же наш родной Kotlin? kotlinlang.org
все можно потрогать не выходя из браузера try.kotlinlang.org
материала о нем дофига и на ютубе и на хабре.
можно потыкать документацию:
- https://kotlinlang.org/docs/reference/lambdas.html
- https://kotlinlang.org/docs/reference/functions.html
Он не чисто функциональный, а имеет функциональные свойства.
Компилируется в байткод, и позволяет смешивать код с явой (как минимум пользоваться всем JFC),
так что не придется покидать зону комфорта.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
al_gon
@al_gon
Я бы посоветовал начать с https://de.wikipedia.org/wiki/Scheme
и racket-lang.org от туда не долеко до Clojure.
Москвин и Haskell хороши, ну мне пошли не сразу. Возможно субьективно, возможно не сразу материал потянул.

И да, оставте Scala на попозже. :)
Ответ написан
Комментировать
Vestail
@Vestail
Software Engineer
Как раз сам недавно начал увлекаться ФП.
Курс по ФП от создателя Scala.
Хорошая книга по ФП.
В курсе и книге используется Scala, он ближе всего для джавистов. Знания самого Scala заранее не требуется.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Начать стоит с дотошного изучения механизмов ФП в самой Java. Тот же Stream API. Потом взяться за Scala. Мультипарадигменность языка облегчит вхождение. Тем более, что есть замечательная в своей простоте книга "Scala для нетерпеливых" Кея Хорстманна. А после можно будет поиграть с чисто функциональным языком Clojure, тоже работающим на всё той же привычной JVM.
Ответ написан
Комментировать
@benoni
программер-любтель, иногда подрабатываю фрилансом
я бы посоветовал Clojure.
Хотя можно еще Kotlin или Kawa (одна из реализаций scheme под jvw).
Ответ написан
Комментировать
@PacifiK
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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