지연평가 + Promise 비동기 상황을 제어할 수 있게 코드를 변경 // 현재 코드에서는 Promise를 처리하지 못한다. go([Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)], L.map(a => a + 10), take(2), console.log ) // 수정 코드 const go1 = (a, f) => a instanceof Promise ? a.then(f) : f(a); L.map = curry(function *(f, iter) { for (const a of iter) yield go1(a,f); }); take const take = curry((limit, iter) => { let res = []; iter = iter[Symbol.iterator](); return function recur() { let cur; while(!
(cur=iter.next()).done) { const a = cur.v...
#
JavaScript
#
Promise
#
take
#
자바스크립트
#
지연평가
#
함수형프로그래밍