ES6+ Basic4

인프런 함수형 프로그래밍과 JavaScript ES6+ / 유인동

결과를 만드는 함수 reduce, take

  • 실제로 연산을 시작하는 시작점을 알리는 함수

reduce

L.entries = fuction *(obj) {
    for (const k in obj) yield [k, obj[k]];
};

// Array.prototype.join보다 다형성이 높은 join함수
const join = curry((sep = ',', iter) =>
    reduce((a, b) => '${a}${sep}${b}', iter));

// const queryStr = obj => go(
//   obj,
const queryStr = pipe(
    L.entries,
    L.map(([k, v])=> '${k}=${v}'),
    join('&');

//    Object.entries,
//    map(([k, v])=> '${k}=${v}'),
//    reduce((a, b) => '${a}&${b}')
);

log(queryStr({ limit: 10, offset:10, type:'notice'}));

take, find

  • find는 take를 통해 결론(결과)을 지어서 만들 수 있음

L.map + take로 map 만들기

L.filter + take로 filter 만들기

L.flatten

  • 1차원 배열로 만들어주는 제너레이터를 반환하는 함수

L.flatMap

2차원 배열 다루기

지연성 / 이터러블 중심 프로그래밍 실무적인 코드 예제

Last updated