Несколько недель назад я начал изучать функциональное программирование. Моим первым действием было чтение Mostly Adequate Guide to Functional Programming Book. (Если вы хотите прочитать эту книгу, перейдите по этой ссылке).

Мне нравится читать эту книгу и читать о FP, это меняет мое мнение. Около 2-3 лет назад я узнал о FP на языке программирования Groovy, но около 2 лет я использую NodeJS и JavaScript в своих проектах.

Лучшей библиотекой, которую я нашел для применения FP в приложениях JavaScript, была фантастическая RamdaJS.

Ramda — это практичная функциональная библиотека для программистов на JavaScript, в которой есть множество встроенных функций, которые помогают нам создавать более качественный и чистый код.

Например, давайте проверим функцию propEq. Эта функция возвращает true, если указанное свойство объекта равно.

var abby = {name: ‘Abby’, age: 7, hair: ‘blond’};
var fred = {name: ‘Fred’, age: 12, hair: ‘brown’};
var rusty = {name: ‘Rusty’, age: 10, hair: ‘brown’};
var alois = {name: ‘Alois’, age: 15, disposition: ‘surly’};
var kids = [abby, fred, rusty, alois];
var hasBrownHair = R.propEq(‘hair’, ‘brown’);
R.filter(hasBrownHair, kids); //=> [fred, rusty]

Этот пример приведен в документации Ramda для propEq, он выбирает все объекты person в массив kids, затем создает фильтр prop с помощью propEq. После этого он фильтрует всех детей с каштановыми волосами, применяя функцию filter. В итоге получаем массив с отфильтрованными результатами.

Волшебство! Разве нет?

Таких полезных функций в текущей версии Ramda около 246.

Это библиотека, на изучение которой стоит потратить время, чтобы применить ее в своих проектах.

Надеюсь, это поможет раскрыть ваш разум :)

'Ибо явилась благодать Божия, спасительная для всех людей'. Титу 2:11