반응형
커링(Currying)과 합성(Composition)
커링(Currying)
커링은 다중 인자를 갖는 함수를 단일 인자를 갖는 함수들의 연속으로 변환하는 기법입니다. 이를 통해 함수를 더 재사용 가능하고 유연하게 만들 수 있습니다. 커링된 함수는 각각의 단계에서 하나의 인자만을 받아들이고, 나머지 인자들은 이전 함수 호출 결과로 반환됩니다.
핵심 내용:
- 커링은 다중 인자를 갖는 함수를 단일 인자를 갖는 함수들의 연속으로 변환하는 기법입니다.
- 커링을 통해 함수를 더 재사용 가능하고 유연하게 만들 수 있습니다.
- 커링된 함수는 각각의 단계에서 하나의 인자만을 받아들이고, 나머지 인자들은 이전 함수 호출 결과로 반환됩니다.
예시:
// 커링 예시
function add(a) {
return function(b) {
return a + b;
};
}
const add2 = add(2); // add 함수의 첫 번째 인자로 2를 전달하여 새로운 함수 생성
console.log(add2(3)); // Output: 5
합성(Composition)
합성은 두 개 이상의 함수를 조합하여 새로운 함수를 만드는 것을 말합니다. 함수형 프로그래밍에서는 함수를 조립하여 더 복잡한 동작을 수행하는데 사용됩니다. 합성된 함수는 입력 값을 가공하고 그 결과를 다음 함수에 전달하여 최종 결과를 만듭니다.
핵심 내용:
- 합성은 두 개 이상의 함수를 조합하여 새로운 함수를 만드는 것을 말합니다.
- 함수형 프로그래밍에서는 함수를 조립하여 더 복잡한 동작을 수행하는데 사용됩니다.
- 합성된 함수는 입력 값을 가공하고 그 결과를 다음 함수에 전달하여 최종 결과를 만듭니다.
예시:
// 합성 예시
function double(x) {
return x * 2;
}
function increment(x) {
return x + 1;
}
const compose = (f, g) => x => f(g(x));
const doubleThenIncrement = compose(increment, double);
console.log(doubleThenIncrement(3)); // Output: 7 (3 * 2 + 1)
커링과 합성은 함수형 프로그래밍에서 강력한 도구로 사용됩니다. 이를 활용하여 코드를 더 간결하고 유연하게 작성할 수 있으며, 함수들 간의 결합을 통해 다양한 동작을 구현할 수 있습니다.
반응형
'javascript pure > javascript 코어 개념' 카테고리의 다른 글
28. 모듈 시스템(Module System) - 1 (0) | 2024.02.17 |
---|---|
27. 자바스크립트 엔진(JavaScript Engine) - 3 (0) | 2024.02.17 |
26. 자바스크립트 엔진(JavaScript Engine) - 2 (0) | 2024.02.17 |
25. 자바스크립트 엔진(JavaScript Engine) - 1 (0) | 2024.02.17 |
23. 함수형 프로그래밍(Functional Programming) - 2 (2) | 2024.02.17 |
22. 함수형 프로그래밍(Functional Programming) - 1 (0) | 2024.02.16 |
21. 디자인 패턴(Design Patterns) - 3 (0) | 2024.02.16 |
20. 디자인 패턴(Design Patterns) - 2 (0) | 2024.02.16 |