Я - пожизненный объектно-ориентированный программист. Моя работа - это прежде всего развитие Java, но у меня есть опыт работы на нескольких языках. Руби дал мне первый реальный вкус функционального программирования. Мне нравились функции Ruby, заимствованные из функциональной парадигмы, такие как закрытие и продолжение. В конце концов, я закончил до Scala. Это был отличный способ постепенно научиться подходить к нетривиальным проблемам функциональным образом.
Теперь меня интересует Clojure. Я знаю все сексуальные функции, которые делают его заманчивым (программная транзакционная память, макросы и т.д.), Но я просто не могу привыкнуть к "мышлению в lisp". Я видел Rich Hickey screencasts, нацеленные на Java-программистов, но они направлены на объяснение языковых особенностей и не приближаются к реальным проблемам.
Я ищу любые советы или ресурсы, которые облегчили этот переход для других.