일급 함수 (First-Class Function)
일급 함수는 함수가 다른 데이터 타입과 동일하게 취급되는 것을 의미
즉, 함수가 변수에 할당될 수 있고, 다른 함수의 인자로 전달되거나 반환될 수 있으며, 데이터 구조에 저장될 수 있음
// 함수는 변수에 할당이 가능
const add = function(a, b) {
return a + b;
};
// 함수는 다른 함수의 인자로 전달 가능
function execute(func, x, y) {
return func(x, y);
}
console.log(execute(add, 2, 3)); // 5
// 함수는 다른 함수의 반환 값으로 사용 가능 : 커링
function createAdder(x) {
return function(y) {
return x + y;
};
}
const add5 = createAdder(5);
console.log(add5(2)); // 7
// 데이터 구조에 저장 가능
const operations = {
add: function(a, b) {
return a + b;
},
subtract: function(a, b) {
return a - b;
}
};
console.log(operations.add(3, 4)); // 7
console.log(operations.subtract(10, 5)); // 5
일급함수의 예시 : 커링, 고차함수
커링
커링 : 함수의 인자를 분리하여 여러 단계에 걸쳐 적용할 수 있음
function add(a) {
return function(b) {
return a + b;
};
}
const add5 = add(5);
console.log(add5(3)); // 8
장단점은 일급함수의 장단점과 같다 : 클로저의 장단점 부분
https://alex963.tistory.com/16
함수형 프로그래밍 (1) - 순수함수
함수형 프로그래밍함수형 프로그래밍은 프로그래밍 패러다임 중 하나로, 순수 함수와 불변성을 강조하며, 프로그램의 상태 변경을 최소화하는 것이 목표함수형 프로그래밍은 수학적 함수의 개
alex963.tistory.com
고차 함수 (Higher-Order Function)
고차 함수는 하나 이상의 함수를 인자로 받거나, 함수를 반환하는 함수를 의미
- 하나 이상의 함수를 인자로 받는 경우 : map, filter, reduce 등의 자바스크립트 대표 고차함수
- 주로 iteration을 처리하는데 자주사용됨
- 함수를 반환하는 함수
// 함수를 반환하는 함수
function createMultiplier(multiplier) {
return function(x) {
return x * multiplier;
};
}
const double = createMultiplier(2);
console.log(double(3)); // 6
'JS' 카테고리의 다른 글
| 비동기 처리 (0) | 2024.07.29 |
|---|---|
| Observer 패턴, Pub-Sub 패턴 + Event Emitter (0) | 2024.07.25 |
| 함수형 프로그래밍 (1) - 순수함수 (0) | 2024.07.24 |
| Jest를 통해 unit테스트 진행하기 (1) | 2024.07.24 |
| 타입스크립트 컴파일 with readline (2) | 2024.07.23 |