currying 기본 사용예시
const order = store => menu => console.log(`{store}-${menu}`);
order('중국집')('자장면')
order('중국집')('짬뽕')
중복코드 해결
const orderCh = order('중국집');
const orderIt = order('이탈리아집');
orderCh('자장면')
orderIt('스파게티')
function order(store) {
return function(menu){
console.log('')
}
}
compose 함수 = 여러가지 함수를 순차적으로 실행시킴
첫번째 함수의 리턴값을 다음 함수가 받아 처리 한다.
const data = compose(fullName, appendAddr, removeNames)(u);
u = {id:1, firstName: 'Gildong', lastName: 'hong'}
// n 개의 함수를 받아 차례로 실행시키는 함수
const compose = (...fns) => (obj) => fns.reduce((c, fn) => fn(c), obj);
arr.reduce((sum, a)=> sum + a , 0)
const findName = (user) => ({
...user,
fullName: '${user.firstName} ${user.lastName}'});
const appendAddr = (user) => (
{...user, addr: 'seoul'}
);
const removeNames = (user) => {
delete user.firstName
delete user.lastName
return user
};
const data = compose(fullName, appendAddr, removeNames)(u);
console.log(data)
// {id:1, fullName: 'Gildonghong', addf: 'seoul'}