Skip to content

Instantly share code, notes, and snippets.

@dengjonathan
Last active November 21, 2016 21:38
Show Gist options
  • Save dengjonathan/ec71bcea5193fb49a617d4b45679865a to your computer and use it in GitHub Desktop.
Save dengjonathan/ec71bcea5193fb49a617d4b45679865a to your computer and use it in GitHub Desktop.
compose example
//Ramda
const R = require('ramda');
const giveProp = (propName, prop, obj) => Object.assign({}, obj, {[propName]: prop});
const givePropCurry = R.curry(giveProp);
const giveName = givePropCurry('name');
const giveJob = givePropCurry('job');
const giveHero = givePropCurry('hero');
const giveJobSmuggler = giveJob('smuggler')
//=> returns a curried function that
//takes an object as an argument and
//returns the a copy with property ['job'] = 'smuggler'
const solo = {name: 'Han'};
const soloSmuggler = giveJobSmuggler(solo);
//=> { name: 'Han', job: 'smuggler' }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment