Skip to content

Instantly share code, notes, and snippets.

@zhangchiqing
Last active December 29, 2015 14:52
Show Gist options
  • Save zhangchiqing/cd205035c40b3b4d6522 to your computer and use it in GitHub Desktop.
Save zhangchiqing/cd205035c40b3b4d6522 to your computer and use it in GitHub Desktop.
Ramda.applyMerge2
var R = require('ramda');
R.compose(
R.apply(R.add),
R.ap([R.add(3), R.multiply(100)])
)([5]); // 508
// applyMerge2 :: (a -> b) -> (a -> b) -> (b -> c) -> ([a] -> c)
var applyMerge2 = function(f1, f2, fmerge) {
return R.compose(R.apply(fmerge), R.ap([f1, f2]), R.of);
};
var add3AndMultiply100ThenSum = applyMerge2(R.add(3), R.multiply(100), R.add);
// Equivalent to `(+) <$> (+3) <*> (*100) $ 5` in Haskell
add3AndMultiply100ThenSum(5); // 508
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment