이 강의는 Inflearn 유인동님의 강의 함수형 프로그래밍과 Javacsript ES6+ 를 수강하고 작성한 글입니다.
먼저 함수형 프로그래밍을 알기 위해서는 함수형 프로그래밍에서 사용하는 용어들을 알아야 할 것이다.
Javascript의 함수형 프로그래밍의 기본 용어와 일급객체, 일급함수에 대하여 알아보도록 하겠습니다.
🐳 평가
평가란 코드가 계산 되어 값을 만드는 것을 의미한다.
const a = 1 + 2;
라는 코드에서 a를 평가해 값을 만드는 것이다.
🐳 일급 객체
일급 객체란 Javascript에서 값으로 다룰 수 있는 것들을 일급객체라고 표현한다.
값으로 다룰 수 있다는 것은 아래의 특징을 가진다.
- 변수에 담을 수 있다.
- 함수의 인자로 사용할 수 있다.
- 함수의 결과로 사용될 수 있다.
이러한 관점에서 일급 함수가 무엇인지 살펴보자
일급함수를 위의 일급 객체의 개념에 대입해 보면 특징을 알 수 있다
🐳 일급함수
1. 일급함수는 변수에 담을 수 있다
// 1. 변수에 담을 수 있다.
const greet = function(name) {
console.log(`Hello, ${name}!`);
}
greet('Hoo'); // 출력: Hello, Hoo!
위의 예제 코드를 보자
greet 이라는 변수에 함수를 담은 것을 볼 수 있다.
이처럼 Javascript에서 함수는 변수에 담을 수 있다.
2. 함수의 인자로 사용할 수 있다.
// 2. 함수의 인자로 사용될 수 있다.
function greetSomeone(func, name) {
func(name);
}
// greet 함수를 다른 함수의 인자로 전달합니다.
greetSomeone(greet, 'Eun'); // 출력: Hello, Eun!
위의 예제 코드를 보자
greetSomeone 이라는 함수의 인자로 greet 함수를 담은 것을 볼 수 있다.
이처럼 Javascript에서 일급함수는 함수의 인자로 사용할 수 있다.
3. 함수의 결과로 사용될 수 있다.
// 3. 함수의 결과로 사용될 수 있다.
function getGreetingFunction() {
return function(name) {
console.log(`Hello, ${name}!`);
};
}
// 함수가 다른 함수를 반환합니다.
const anotherGreet = getGreetingFunction();
anotherGreet('BBo'); // 출력: Hello, BBo!
별거 아닌 것 같지만 getGreetingFuction 이라는 함수는 결과 값으로 함수를 가진다.
이처럼 Javascript에서 일급함수는 다른 함수의 결과로 사용될 수 있다.
🐳 그래서 일급 함수가 왜 중요해 ?
이러한 일급 함수가 중요한 이유가 무엇일까 ?
일급함수의 특징을 다시 한 번 살펴보자
- 일급함수는 변수에 담을 수 있다.
- 일급함수는 함수의 인자로 사용할 수 있다.
- 일급함수는 함수의 결과로 사용될 수 있다.
위의 특징을 살펴보면 전부 공통적인 특징이 있다.
바로 다른 함수들과 조합이 가능하다는 것이다.
그렇기 때문에 일급함수는 Javascript의 함수형 프로그래밍의 기반이 된다.
이러한 일급함수들을 활용하여
재사용성이 뛰어나고
간결하며
표현력이 뛰어난
고차함수를
구현할 수 있다.
'Node.js > Javascript' 카테고리의 다른 글
[함수형프로그래밍] 3. Reduce 함수 ( with Test ) (2) | 2024.04.01 |
---|---|
[함수형프로그래밍] 2. 이터러블 이터레이터 프로토콜 근데 이제 range 함수 예제를 곁들인 (27) | 2024.03.26 |
[함수형프로그래밍] 0. 함수형 프로그래밍이란 ? (0) | 2024.03.14 |
[Javascript] 날짜 구하기 / 문자열 앞에 문자 더하기 (0) | 2023.06.04 |