- _pipe
함수들을 인자로 받아서 이 함수를 연속적으로 실행해주는 함수이다.
function _pipe() {
var fns = arguments;
return function(arg) {
return _reduce(fns, function(arg, fn) {
return fn(arg);
}, arg)
}
}
var f1 = _pipe(
function(a) { return a + 1; },
function(a) { return a * 2; },
function(a) { return a * a; },
);
console.log( f1(1) );
- _go
즉시 실행하는 _pipe 함수
function _go() {
var fns = _rest(arguments);
_pipe.apply(null, fns)(arg);
}
_go(1,
function(a) { return a + 1; },
function(a) { return a * 2; },
function(a) { return a * a; },
console.log);
consle.log(
_map(
_filter(users, function(user) {return user.age >= 30; }),
_get('name')));
consle.log(
_map(
_filter(users, function(user) {return user.age < 30; }),
_get('age')));
_go(users,
function(users) {
return _filter(users, function(users) {
return user.age >= 30;
});
},
function (users) {
return map(users, _get('name'));
},
console.log);
_go(users,
function(users) {
return _filter(users, function(users) {
return user.age < 30;
});
},
function (users) {
return map(users, _get('name'));
},
console.log);
var _map = _curryr(_map),
_filter = _curryr(_filter)
_go(users,
_filter(user => user.age < 30),
_map(_get('age')),
console.log);