작성
·
336
4
지금 구현한 curry 는 3개 이상의 인자가 있을 때, 첫 번째 인자만 고정하고, 나머지 인자를 한 번에 넘겨서 호출해야만 처리가 가능한데요. 이게 의도하신건가요? 원래 커링은 여러 개의 인자가 있을 때, 변수를 하나 씩 고정하는 함수열로 만드는 거라고 알고 있어서요.
예를 들어, const test = curry((a,b,c) => a+b+c) 에서 console.log(test(1)(2)) 하면 NaN 이 나옵니다.
답변 5
5
3번 이상의 lazy evaluation 이 가능하면 더 좋지 않을까해서 한번 구현해봤습니다 :)
const curry = f => function curried(...args) {
return args.length >= f.length ? f(...args) : (...args2) => curried(...args, ...args2);
}
const c_add = curry((a, b, c) => a + b + c);
c_add(1, 2, 3);
c_add(1)(2, 3);
c_add(1, 2)(3);
c_add(1)(2)(3);
1
1
0
0
안녕하세요 강의 잘 듣고 있습니다.
가변인자를 지원하는 자바스크립트에서는 한 번의 커리가 실용적이라 말씀해주셨는데, 이부분이 크게 와닿지가 않네요. 😂😂
혹시 조금만 더 풀어서 설명해주실수 있을까요?