for of vs while
2
안녕하세요.
코드를 작성하면서 실습하는 중입니다. 실습할 때, for of 구문을 이용해서 코드를 작성했는데 이번 take 함수는 의도에 맞게 동작하지 않더라고요. reduce 함수는 for of 구문을 작성해도 잘 작동했는데 이유가 뭘까요?
const go1 = (a, f) => a instanceof Promise ? a.then(f) : f(a);
const reduce = curry((f, acc, iter) => {
if (!iter) {
iter = acc[Symbol.iterator]();
acc = iter.next().value;
}
return go1(acc, function recur(acc) {
for (const e of iter) {
acc = f(acc, e);
if (acc instanceof Promise) return acc.then(recur);
}
return acc;
});
});
let res = [];
return function recur() {
// if(e instanceof Promise) return .then(e => {...}) closure에 담긴 iter 상태가 closed로 변경
// for (const e of iter) {
// if(e instanceof Promise) return .then(e => {...}) 문을 만나도 iter가 closed가 되지 않음
let cur;
while (!(cur = iter.next()).done) {
const e = cur.value;
if (e instanceof Promise) return e.then(e => {
if (res.length == l) return res;
res.push(e);
return recur();
})
if (res.length == l) return res;
res.push(e);
}
return res;
}();
});
답변 3
프론트엔드 실무에서 어떤때에 쓰이는지 궁금합니다
1
111
1
함수형 프로그래밍 심화 강의 자료 추천
0
72
2
함수형 자바스크립트 프로그래밍 책
0
52
1
filter가 아무것도 걸러내지 못하는 경우
0
113
1
take 함수의 성능적면에서의 이점
1
463
1
pipe함수
1
530
1
Identity 함수
0
450
1
함수형 프로그래밍이란
0
831
1
reduce 예제 코드 제안!
0
404
1
fxts를 배워보려고 합니다.
1
537
1
flatMap 관련 질문드립니다~
1
444
1
다용성이 높은 L.flatMap
0
357
1
변수에 재 할당 금지~
0
540
1
DevTools라고 옆에 결과 확인하는거 어떻게 하나요?
0
483
2
소요시간에 관해서 질문드립니다
1
457
1
join에 대한 내용이 궁금증이 해결되지 않아서 질문드립니다!
0
465
2
reduce에 L.range를 사용할 때
0
526
2
[이해내용 공유] Lazy 에서 C.reduce가 병렬 효과를 내는 이유
3
738
2
제가 이해한 C.Reduce와 Reduce의 동작 차이 정리
2
787
3
go, pipe 함수 관련하여 질문 드립니다.
1
498
1
안녕하세요 강사님!
0
379
2
fxts에 go가 없는 이유?
0
839
1
비동기 관련 질문입니다!
0
460
1
질문 있습니다.
0
515
1





