JavaScript 함수형 프로그래밍 - Kleisli Composition : L.filter, nop, take + Promise


JavaScript 함수형 프로그래밍 - Kleisli Composition : L.filter, nop, take + Promise

L.filter nop : Promise.reject을 했을 시 에러가 아닌 값을 전달하지 않겠다는 구분자 역할 Promise.reject가 존재하면 then이 몇 개 존재하든 바로 catch 부분의 코드가 실행되게 된다. // 현재는 Promise를 filter하지 못한다. go([1,2,3,4,5,6], L.map(a => Promise.resolve(a * a)), L.filter(a => a % 2), take(2), console.log ) // 수정 코드 const nop = Symbol('nop'); const go1 = (a, f) => a instanceof Promise ? a.then(f) : f(a); L.filter = curry(function *(f, iter) { for (const a of iter) { const b = go1(a, f); if (b instanceof Promise) yield b.then(b => b ? a : Promise.rej...


#JavaScript #KleisliComposition #Lfilter #nop #take #자바스크립트 #함수형프로그래밍

원문링크 : JavaScript 함수형 프로그래밍 - Kleisli Composition : L.filter, nop, take + Promise