function add_maker(a){
return function(b){
return a + b;
}
}
const add5 = add_maker(5);
console.log(add5(1)); // 출력값 6
-----------------------------------------------------
function curryr(func) {
return function (a, b) {
return arguments.length === 2 ? func(a, b) : function (b) { return func(b, a) };
}
}
const sub = curryr((a, b) => a - b);
const sub3 = sub(3);
console.log(sub(2, 3)); // -1
지금 함수형 프로그래밍 설명 다 하나씩 보고있는데 하나같이 뭔소리하는지 모르겠음
함수를 순수히 조합하고...값을 변경하지 않고...
다 똑같이 말하는데 개념 이해가 힘들다
저 위에 코드가 왜 가능한거임?
이해가 안가...
일급 객체에 대해 알아보고 오자. 변수에 1, 2, 'a', 0.34등 원시타입을 넣거나 new myObject();같은 참조타입이 들어가잖아? 거기에 함수가 들어간다고 생각하면됨 - dc Cpp
add5 변수에 add_maker(5)라는 함수를 넣는거지... 그럼 add5라는놈은 5+b를 리턴하는 함수가 들어가는거지 - dc Cpp
오...그러면 클래스처럼 함수를 틀대로 찍어낸다고 생각하면 되는건가?
걍 체이닝 느낌인건데 예시는
함수를 뱉는 함수인데, 이때 패러매터는 값복사로 들어가니까 영원히 변경되는게 아니잖음 - dc App