인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

inomosaic0443's profile image
inomosaic0443

asked

Functional Programming with JavaScript (ES5)

Curry, curry, curryr

curryr 부분이 이해가 잘 안 갑니다.

Written on

·

223

0

안녕하세요. 좋은 강의 잘 듣고 있습니다.

강의에 따르면, curryr은 fn(a, b) 부분의 인자 순서를 fn(b, a)로 바꿔서 실행 값을 변화시킨다고 설명해 주셨습니다. 실제로도 결과가 그렇게 나옵니다.

그러나 저로서는 아무리 봐도 이해가 안가는게, 결국 인자의 순서와 별게로 값을 만드는 것은 함수의 실행부, 다시 말해 {} 이 중괄호 안의 부분이 결정하는데, 인자의 순서와 별계로 괄호 안의 실행부는

return a-b 인데 어째서 다른 결과를 가져오는지 이해가 가지를 않습니다 ㅜ.ㅜ

function _curryr(fn) {

return function(a, b) { //인자가 a, b 라고 해도 다 받아야 하는 것은 아니다. a 부터 순서대로 한 개씩만 받아도 된다.

return arguments.length == 2 ? fn(a, b) : function(b) { return fn(b, a); };

}

}

var sub = _curryr(function(a, b){

return a - b;

})

console.log(sub(10, 5));

var sub10 = sub(10);

console.log(sub10(5));

javascript함수형-프로그래밍

Answer 2

0

inomosaic0443님의 프로필 이미지
inomosaic0443
Questioner

넵. 다시보니이해가 되네요. 콜백으로 들어가는 a, b는 fn(b, a)랑 이름만 같지 관계가 없는데 a, b 를 써서 헷갈린들 합니다.

0

mduniv님의 프로필 이미지
mduniv
Instructor

fn(b, a); 부분 때문에 그렇습니다.

천천히 봐보세요! 화이팅!

inomosaic0443's profile image
inomosaic0443

asked

Ask a question