- PVSM.RU - https://www.pvsm.ru -
1. Первые шаги [1]
2. Сочетаем функции [2]
3. Частичное применение (каррирование) [3]
4. Декларативное программирование [4]
5. Бесточечная нотация [5]
6. Неизменяемость и объекты [6]
7. Неизменяемость и массивы [7]
8. Линзы [8]
9. Заключение [9]
10. Использование Ramda с Redux
11. Функциональные компоненты с React stateless функциями и Ramda
12. Модульные редюсеры и селекторы
Данный пост завершает серию статей о функциональном программировании под названием "Мышление в стиле Ramda".
В последние восемь постов мы говорили о JavaScript библиотеке Ramda, которая предоставляет функции для работы с JavaScript в функциональном, декларативном и иммтубельном стиле.
В течении этой серии статей, мы узнали, что Ramda имеет несколько основных принципов, которыми движется её API:
Эти два принципи позволяют нам писать очень чистый функциональный код, который объединяет базовые строительные блоки в более мощные операции.
Для справки, вот короткое резюме серии статей.
map
, filter
и reduce
.both
, either
, pipe
и compose
.partial
и curry
для того чтобы помочь нам с этим и узнаём о flip
и заполнителе (__
)view
, set
и over
, мы можем читать, обновлять и трансформировать значение, на котором сфокусирована линза в контекте больших структур данных.Мы не покрыли каждую часть Ramda в данной серии статей. В частности, мы не поговорили о функциях для работы со строками, и мы не говорили о более сложных концепциях, таких как трансдюсеры [10].
Для того чтобы узнать больше о том, что Ramda может делать, я рекомендую изучать её документацию [11]. Там целое богатство информации. Все функции сгруппированы по типу данных, с которыми они работают, хотя там имеется некоторое перекрытие. К примеру, некоторые из функций для работы с массивами также работат со строками, и map
работает как с массивами, так и с объектами.
Если вы заинтересовались более сложными функциональными темами, вот несколько мест, к которым вы можете обратиться:
От автора переводов статей: если будет угодно Господу, я продолжу переводить статьи о Ramda, в частности, у меня есть желание перевести статью об использовании ramda с redux [15], статью о функциональных компонентах с React stateless функциями и Ramda [16], статью о модульных редюсерах и селекторах [17], и наверное статью о глобализации redux-селекторов [18].
Автор: Роман Ахмадуллин
Источник [19]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/283936
Ссылки в тексте:
[1] 1. Первые шаги: https://habrahabr.ru/post/348868/
[2] 2. Сочетаем функции: https://habrahabr.ru/post/348976/
[3] 3. Частичное применение (каррирование): https://habrahabr.ru/post/349140
[4] 4. Декларативное программирование: https://habrahabr.ru/post/349674
[5] 5. Бесточечная нотация: https://habr.com/post/358452/
[6] 6. Неизменяемость и объекты: https://habr.com/post/414337/
[7] 7. Неизменяемость и массивы: https://habr.com/post/415025/
[8] 8. Линзы: https://habr.com/post/415035/
[9] 9. Заключение: https://habr.com/post/415037/
[10] трансдюсеры: https://ramdajs.com/0.21.0/docs/#transduce
[11] её документацию: https://ramdajs.com/docs/
[12] хорошую вступительную статью: http://simplectic.com/blog/2015/ramda-transducers-logs/
[13] ramda-fantasy: https://github.com/ramda/ramda-fantasy
[14] спецификации Fantasy Land: https://github.com/fantasyland/fantasy-land
[15] статью об использовании ramda с redux: http://randycoulman.com/blog/2016/02/16/using-ramda-with-redux/
[16] статью о функциональных компонентах с React stateless функциями и Ramda: https://medium.com/@mirkomariani/functional-components-with-react-stateless-functions-and-ramda-e83e54fcd86b#.gs57vesd2
[17] статью о модульных редюсерах и селекторах: http://randycoulman.com/blog/2016/09/27/modular-reducers-and-selectors/
[18] статью о глобализации redux-селекторов: http://randycoulman.com/blog/2016/11/29/globalizing-redux-selectors/
[19] Источник: https://habr.com/post/415037/?utm_source=habrahabr&utm_medium=rss&utm_campaign=415037
Нажмите здесь для печати.