Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Функции R.compose и R.pipe могут принимать до 10 аргументов.Непонятны ни причина ограничения, ни истина этого высказывания. В коде ограничения нету.
function fn(){}
function call(){
return fn.apply(null, arguments);
}
function class(){}
function make(a,b,c,d,e,f,g,h,i,j,k,l){
// apply вместе с new не применишь, только так
return new class(a,b,c,d,e,f,g,h,i,j,k,l);
}
Композиция, рассчитанная на обещаниеА почему бы не использовать композицию с помощью .then? Может, я не вижу ошибки, но разве следуюший код не выглядит ещё лучше и более знакомым программистам, нежели pPipe?
var getCostWithTaxAsync = getItem()
.then(R.prop('cost'))
.then(R.multiply(1 + TAX_RATE);
.map(), .reverse(), .filter(), .toLowerCase(). А иногда очень нужно изменить сам объект, потому что им пользуются другие части приложения..slice(), что возвращает новый экземпляр. Но писать .slice().sort(...), .slice().splice(...) тоже напрягает..map() и .mapForce()?.mapObj(). Во всех остальных библиотеках приходилось вместо этого изгаляться с .reduce().list.filter( odd ) // мутируем существующий объект
var list2 = list.filter( odd , [ 1 , 2 ] ) // мутируем переданный вторым аргументом
Практика функционального программирования на JavaScript с использованием Ramda