🐏 Ramda: My library of resources

iainfreestone profile image Iain Freestone Updated on ・9 min read

Ramda is my go to JavaScript utility library. I have used it for about 4 years now and over that time I have built up a collection of resources.

If you are looking to learn a little more about Ramda or already have experience of the library I am sure there is something in here that you will find useful.

I maintain a GitHub repo of these resources if there is anything you would like to add - Github - Ramda Links



What Function Should I Use

Ramda Cookbook

Gitter Channel



Why are we not afraid to think functionally with Ramda? (28th November 2018)

Recursive Rolling Calculations with Ramda (27th September 2018)

A beginners guide to Ramda (Part 2) — Lenses (23rd July 2018)

A beginners guide to Ramda (Part 1) — Currying and composition (10th July 2018)

GraphQL Resolvers + Ramda = CRUD (13th May 2018)

I ❤ Ramda — Partial Application with a Special Placeholder (11th May 2018)

Ramda Chops: Function Currying (23rd January 2018)

Getting started with Functional Programming and Ramda (26th December 2017)

Easy pipeline debugging with curried console.log (20th December 2017)

Functional programming with Ramda (20th November 2017)

Functional JavaScript: Why I prefer using Ramda over Lodash or Underscore! (19th November 2017)

Optimize JavaScript code for composability with Ramda.js (6th October 2017)

Functional lenses in JavaScript (6th October 2017)

Code Without If or Switch statements ? Try with Ramda library! (22nd September 2017)

The Beauty of Javascript Composition (14th September 2017)

Monad transformers in JavaScript (28th August 2017)

Use a little bit of FP (17th August 2017)

After Sliced Bread Came Ramda.js (Part II) (14th August 2017)

After Sliced Bread Came Ramda.js (Part I) (5th August 2017)

Composable Object validations in JS (31st July 2017)

Compute Even Digits — Fun with Ramda pt.1 (22nd July 2017)

Using functional lenses to modify objects by example (22nd July 2017)

The beauty in Partial Application, Currying, and Function Composition (18th July 2017)

Ramda — R.adjust (3rd July 2017)

Ramda for reactive streams (14th April 2017)

Functional Programming in JS with Ramda: Arrays and Objects (9th April 2017)

Converging to Point Free (30th March 2017)

Functional Workaholism (28th February 2017)

Ramda Adjunct (23th February 2017)

Demystifying functional programming with Ramda (15th February 2017)

Ramda.js in Real World Productions (23rd January 2017)

Composing lenses in Ramda (4th January 2017)

Some Functional Javascript Goodness (17th November 2016)

An Introduction Into Lenses In JavaScript (17th November 2016)

Functional Programming In JavaScript — With Practical Examples (Part 2) (16th November 2016)

Functional Programming In JavaScript — With Practical Examples (Part 1) (14th November 2016)

Stop Writing for-loops (compose) (16th August 2016)

Why Functional Programming? (22nd July 2016)

Functional Components with React stateless functions and Ramda (4th July 2016)

Hands-on Functional Programming with Ramda.js (15th June 2016)

Thinking in Ramda: Getting Started (24th May 2016)

Lifting functions into monadic Context in JavaScript (23rd April 2017)

Achieving point-free JavaScript with R.converge / _.over (12th April 2016)

I Think Ramda Might Be Better Than Lodash or Underscore (3rd April 2016)

An Intro to Functional Programming Concepts in JavaScript (23rd October 2015)

Functional programming with Ramda.js (5th September 2015)

Practical ramda - functional programming examples (27th August 2015)

Refactoring Towards Functional Programming in JavaScript (14th June 2015)

Breaking out of the For Loop: Pragmatic Functional Techniques in JavaScript (14th May 2015)

Write Reacts components in a functional way with Ramda and PointFree (15th April 2015)

Streaming Logs with Transducers and Ramda (24th March 2015)

Tacit Ramda (8th March 2015)

Curry And Compose (why you should be using something like ramda in your code) (22nd February 2015)

A Practical Ramda example: Scraping

Pagination for a web app

Practical Functional Javascript with Ramda 17th December 2014

Lodash to Ramda example (15th August 2014)

The Philosophy of Ramda

Introducing Ramda (16th May 2014)

Ramda with React and Redux

Easily Integrate Ramda into Your React Workflow (14th September 2019)

Purely Functional React Signup with Redux-Observable, Recompose, and Ramda (4th April 2018)

React state management with Lenses (9th March 2018)

Redux + Ramda: Let’s Code a Higher-Order “Duck” (25th February 2018)

React & Redux (& Ramda): Composing connectors — a powerful re-usability pattern (19th November 2017)

Better Redux Selectors with Ramda (7th September 2017)

Less Redux Boilerplate with Union Types (2nd September 2017)

The 4R framework - 3 libraries to use in your React app (25th August 2017)

Functional Redux Reducers with Ramda (August 2017)

Immutable Deep State Updates in React with Ramda.js (27th May 2017)

Let’s Learn: Composing React Components With Ramda (1st March 2017)

React + Ramda What is Ramda? (2017)

Using Ramdas Evolve in Redux Reducers to Create New State (25th February 2017)

Writing Elegant Code With React, Redux and Ramda (28th August 2016)

Using Ramda for React Components (26th July 2016)

Using Ramda With Redux (31st February 2016)

Ramda with Angular

Using Ramda.js with Angular 2+ / Angular CLI (5th August 2017)


Ramda: A Functional Programming Library for JavaScript

Hey Underscore, You're Doing It Wrong!

Ramda Demo - Bob Pace

Ramda JS – An Introduction

Michael Gilliland - Ramda Series


Functional Programming with Ramda with Christine Legge (28th August 2018)

'Hardcore' Functional Programming using Ramda with Andrew D'Amelio (30th November 2015)


Ramda REPL


Ramda + Ramda Fantasy + Sanctuary REPL

Ramda Libaries/Tools

Learn ramda, the interactive way


Ramda Suggest








Ramda REPL (Atom)

Ramda Type Definitions



Ramda Debugging tools



Generates friendly trace info for pipe() / compose()

Ramda Snippets / Gists

Transform props with Ramda A. Sharif

Transforming Deeply Nested Data

Using Ramda with Redux to update any Object/Map like state inside reducers. A. Sharif

Using ifElse for branching between 2 Components, depending on the passed in props A. Sharif

Lenses + React setSate for safely accessing and updating deeply nested data. A. Sharif Andrew Van Slaars

Boilerplates / Templates

Ramda Learning Template

Example Projects/Examples

A calculator built with React, Redux and Ramda

A Sokoban game written in the functional programming style. Makes heavy use of currying, mapping, pipes and other Ramda.js features. 100% variable free!

General Functional Programming

Functional Programming Jargon

Awesome FP JS

If you enjoyed this article you can follow me on Twitter where I regularly post bite size tips relating to HTML, CSS and JavaScript.

Posted on by:

iainfreestone profile

Iain Freestone


A Web developer from Hampshire in the south of England.


markdown guide