Функциональное программирование превосходно. Оно позволяет легко упрощать программы, также легко их тестировать. К сожалению, не все языки одинаковы. Я немного писал на Clojure и действительно наслаждался им. Поэтому попробовал перенести полученный опыт на JavaScript, и столкнулся с несколькими проблемами о которых собственно и поговорим.
Предпочтение персистентных данных
Основой целью для любой функциональной системы является избегание изменяемого глобального состояния. Другими словами, тех переменных, которые, любой кусок кода может изменить в любое время.…