55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결함수형 프로그래밍과 JavaScript ES6+
3개 이상의 인자가 있는 함수의 경우 처리
지금 구현한 curry 는 3개 이상의 인자가 있을 때, 첫 번째 인자만 고정하고, 나머지 인자를 한 번에 넘겨서 호출해야만 처리가 가능한데요. 이게 의도하신건가요? 원래 커링은 여러 개의 인자가 있을 때, 변수를 하나 씩 고정하는 함수열로 만드는 거라고 알고 있어서요. 예를 들어, const test = curry((a,b,c) => a+b+c) 에서 console.log(test(1)(2)) 하면 NaN 이 나옵니다.
- 미해결함수형 프로그래밍과 JavaScript ES6+
안녕하세요
질문이 있는데.. 파이참 쓰시는거 같은데 혹시 파이참에서 컨솔창 어떻게 여는지 알려주실수 있을까요? 감사합니다..
- 해결됨함수형 프로그래밍과 JavaScript ES6+
a instanceof Promise
fxjs 와 mql 를 애용하는 개발자입니다. 최근 사용한 어떤 모듈에서 parameter 수에 따라 비동기 처리에 대한 응답을 callback 패턴과 Promise 패턴 모두 지원하는 함수가 있었습니다. go 함수를 통해 값을 다루어왔기 때문에 당연히 Promise 패턴을 생각하고 코딩을 했습니다. 그런데 예상과는 다르게 동작했고, 무엇보다 go 함수 결과에 catch 메소드 자체가 존재하지 않았습니다. 알고보니 해당 모듈의 함수에서 bluebird Promise 를 사용하고 있어서 fxjs 내부의 a instanceof Promise 부분에 걸려들지 않았던 것입니다. 그래서 메소드 전체를 new Promise 로 감싸고 callback 함수에서 resolve/reject 처리하여 진행하였습니다. 그런데 문득, Promise 값인지 아닌지를 판단하는 a instanceof Promise 부분까지도, 함수로 받게끔 할 수 있다면 어떨까 하는 생각이 들었습니다. is_promise = a => a instanceof Promise 대신 is_promise = a => a instanceof Promise || a instanceof blue_bird_Promise 물론 함수를 사용할 때마다 해당 함수를 넘기는 것이 아니라, fxjs 내부에 is_promise = a => instanceof Promise 부분은 이미 정의되어 있고, fxjs 초기 설정시 is_promise 함수를 다른 함수로 대체하여 사용할 수 있도록 허용하는 것을 의미합니다.
- 미해결함수형 프로그래밍과 JavaScript ES6+
function* 없이 지연성이 있는 함수를 만들 수 있을까요?
주어지는 generator기능이 없이, generator와 동일한 역할을 수행하는 함수를 코드로 보고 싶습니다.
- 미해결함수형 프로그래밍과 JavaScript ES6+
사운드 싱크가 안맞는 것 같습니다..
저만 그런건가요?
- 미해결함수형 프로그래밍과 JavaScript ES6+
products가 사라져도 왜 괜찮은지 모르겠어요....
curry 함수에 의해서 products =>filter(p=>p.price <20000, products) 가 products ⇒ filter(p⇒p.price <2000)(products) 가 되는 것은 이해하였습니다. 다만 어째서 products ⇒ filter(p⇒p.price <2000)(products) 가 filter(p⇒p.price <2000) 랑 같은 것인지는 이해가 되지 않습니다. 모양 자체도 (인자) ⇒ (실행할 함수) 의 모양에서 아예 (함수) 의 모양으로만 바뀌었는데, 이렇게 될 경우 인자를 주지도 않고 작동하는 함수? 처럼 보입니다. 혹시 go 함수의 reduce 함수 자체가 이미 f(acc, a)를 할때 f(products, filter(....)) 와 같은 모양이 되기에 그런것일 까요?
- 미해결함수형 프로그래밍과 JavaScript ES6+
pipe 함수 인자관련 질문있습니다
const pipe = (...fs) => (a) => go(a, ...fs);const f = pipe( a => a+1, a=> a+10, a=> a+100 ) f(0) 이 부분에서 질문이 있습니다. 1. f 함수는 어떻게 0이라는 파라미터를 받을 수 있는가? - pipe 함수 자체가 ...fs를 파라미터로 받기에 가능한 것인가요?2. pipe 함수에서의 (a)가 어떻게 f(0)에서의 0으로 연결되는지 이해가 잘 안됩니다. f(0) = pipe(...fs)(0) 이렇게 되는 건가요?
- 미해결함수형 프로그래밍과 JavaScript ES6+
go, pipe, reduce의 비동기 제어에서의 성능 개선에 대한 질문입니다.
go, pipe, reduce의 비동기 제어 부분에서 reduce함수를 recur(acc)를 리턴하는 방식으로 고치면 go(1, a => a + 10, Promise.resolve(a + 100), a => a + 1000, a => a + 10000)에서 a => a + 10과 a => a + 1000, a => a + 10000이 하나의 콜스택에서 동작하기 때문에 성능적으로 더 좋고 효율적으로 동작하는 reduce가 된다고 설명해주셨는데요. 혹시 이 부분을 조금만 더 자세히 설명해주실 수 있을까요? 아직 자바스크립트에서의 비동기 실행에 대한 이해가 부족한 탓인지, 아니면 혹시 이벤트루프에 대한 이해가 부족한 탓인지 이 부분이 잘 이해가 되지 않네요. 감사합니다.
- 미해결함수형 프로그래밍과 JavaScript ES6+
혹시 3편은 언제쯤 나올지 알 수 있을까요?
안녕하세요. 좋은 강의 올려주셔서 진심으로 감사드립니다. 강의를 하나씩 들을 때마다 함수형 프로그래밍을 통해 가능해지는 코드의 간결함과 효율성에 매번 감탄하면서 듣고 있는데요. 지금 듣고 있는 강의를 얼른 듣고 소화시키고 더 깊게, 더 효과적으로 응용하고 싶은 욕심이 많이 드는 것 같습니다. 현재 응용편까지 나와있고 3편은 데이터베이스와 관련된 강의가 될 것이라고 들었는데, 혹시 3편은 언제쯤 출시가 될지, 그리고 데이터베이스와 관련해서 좀 더 구체적으로 어떤 내용의 강의가 될지 미리 조금만 알려주실 수 있을까요? 감사합니다.
- 해결됨함수형 프로그래밍과 JavaScript ES6+
전체적인 질문있습니다..!
삭제된 글입니다
- 미해결함수형 프로그래밍과 JavaScript ES6+
모나딕한 이라는 것이 무엇인가요?
삭제된 글입니다
- 해결됨함수형 프로그래밍과 JavaScript ES6+
지연평가 - 이터레이터 질문
삭제된 글입니다
- 해결됨함수형 프로그래밍과 JavaScript ES6+
async 함수 작성시
안녕하세요, 아래와 같은 함수를 좀더 풀어서 쓴다면 어떤식으로 표현이 가능할까요? 무언가 축약된 표현인거같은데 알고싶습니다. (asnync () => { log(await pa); }) ();
- 해결됨함수형 프로그래밍과 JavaScript ES6+
강의 1분40초쯤, iterable 객체 안에
[Symbol.iterator]() { ... } 라고 메소드명을 대괄호로 묶었는데 이건 왜그런건가요?
- 미해결함수형 프로그래밍과 JavaScript ES6+
L.flatten 평가 시점 관련
flatten -> L.flatten 적용이 되어도 즉시 평가가 되는 이유가 무엇인가요?
- 미해결함수형 프로그래밍과 JavaScript ES6+
catchNoop을 해줘야되는 이유에 대해서 궁금한게있습니다.
한 콜스택 내에서 error를 catch하지 못했기 때문에 error가 콘솔에 뿜어져서 catchNoop을 해준다고 하셨는데요. C.reduce가 아니라 그냥 reduce의 경우에는 세로로 하나씩 실행되면서 filter가 Promise.reject(nop)을 리턴할 때가 있는데요. 이 call stack이 끝나고 reduce에 의해 recur이 실행되어 L.map으로 넘어가는데 L.map이 받은 Promise.reject(nop)은 filter와 다른스택 아닌가요? 제 생각으로는 L.map으로 가기전에 L.filter의 처리를 담은 프로미스가 끝나서 한 call-stack이 끝나고 C.reduce와 마찬가지로 에러를 만들어야될 것 같은데 아니네요.
- 미해결함수형 프로그래밍과 JavaScript ES6+
go 함수의 사용할때
안녕하세요, const _go = (...args) => _reduce((a, fns) => fns(a), args) 리턴 부분의 args 는 처음 인자인 0 을 받아주기위해서 인가요?? 끝부분의 args 의 role 을 알고싶습니다..
- 미해결함수형 프로그래밍과 JavaScript ES6+
curry를 사용하여 축약할때, iter 에 관한 질문
_go( products, _filter(p => p.price < 20000), _map(p => p.price), _reduce(add), console.log ) const _go = (...args) => _reduce((a, fns) => fns(a), args 여기에서 args 를 명시하지 않아도 되기 때문에 간결한 코드가 나오게 되었는데, curry 함수의 어떤 부분이 iter 될 args 가 없음에도 작동하는지 알고싶습니다.
- 미해결함수형 프로그래밍과 JavaScript ES6+
curry 함수의 내부
const curry = f => (a, ..._) => _.lenght ? f(a, ..._) : (..._) => f(a, ..._); 위 함수에서 a 는 log 에서 받은 params 들이 두개 이상 저장되는 곳이라고 볼수있나요?
- 미해결함수형 프로그래밍과 JavaScript ES6+
pipie 함수 관련
const _pipe = (f, ...fns) => (...args) => _go(f(...args), ...fns) 두가지 질문이 있습니다 첫째, 위 부분에서 첫번째 함수만 꺼내고 나머지 함수를 뒤로 보낸다는 부분이 f = (a, b) => a + b, ...fns = 나머지 follow up 함수들을 말하는 것인가요? 둘째, 위 코드 라인에서 accumulator 역할을 하는 부분이 _go 함수의 ...fns 부분일까요?