서론
자바스크립트는 함수형 프로그래밍 패러다임
을 지원하는 언어 중 하나이다. 함수형 프로그래밍이란 프로그램의 각 부분을 작은 함수들로 나누고,
이러한 함수들이 서로 상태를 공유하지 않고 데이터를 변경하지 않도록 설계하는 것에 중점을 둔다.
이렇게 되면, 각 함수는 순수 함수(pure function)
가 되어 동일한 입력에 대해서 항상 동일한 출력을 생성한다. 즉, 멱등성
을 보장할 수 있다는 뜻이다.
이런 접근 방식은 프로그램의 예측 가능성과 디버깅을 쉽게 만들어 준다.
.본고에서는 자바스크립트에서 자주 언급되는 함수형 프로그래밍 패러다임의 핵심 키워드라 생각되는 일급함수
와 고차함수
가 무엇인지,
이들이 어떻게 사용되는지 살펴볼 것이다.
본론
일급함수 (First-Class-Citizen) 란?
일급함수란, 함수를 값으로 다룰 수 있다
는 뜻이다. 이는 함수를 변수에 할당할 수 있고, 함수를 인자로 전달할 수 있으며, 함수를 반환할 수 있다는 뜻이다.
이러한 특징을 가진 함수를 일급함수
라고 한다.
// 함수를 변수에 할당
const add = (a, b) => a + b;
// 함수를 인자로 전달
const apply = (func, a, b) => func(a, b);
// 함수를 반환
const adder = () => {
return (a, b) => a + b;
};
고차함수 (Higher-Order-Function) 란?
고차함수란, 함수를 인자로 받거나, 함수를 반환하는 함수
를 말한다. 즉, 고차함수는 함수를 인자로 받아서 실행하거나, 함수를 반환하는 함수를 말한다.
// 함수를 인자로 받아서 실행하는 고차함수
const apply = (func, a, b) => func(a, b);
// 함수를 반환하는 고차함수
const adder = () => {
return (a, b) => a + b;
};
일급함수와 고차함수의 활용
일급함수와 고차함수는 함수형 프로그래밍 패러다임의 핵심이다. 이들을 활용하면, 코드의 재사용성을 높일 수 있고, 코드의 가독성을 높일 수 있다. 또한 추상화에도 큰 이점을 보인다. 또한, 함수를 인자로 받아서 실행하는 고차함수를 통해, 함수의 실행 시점을 조절할 수 있다.
// 함수를 인자로 받아서 실행하는 고차함수를 통해, 함수의 실행 시점을 조절할 수 있다.
const add = (a, b) => a + b;
const adder = () => {
return (a, b) => a + b;
};
const adderFunc = adder();
const result = apply(adderFunc, 1, 2);
결론
본고에서는 자바스크립트에서 자주 언급되는 함수형 프로그래밍 패러다임의 핵심 키워드라 생각되는 일급함수
와 고차함수
가 무엇인지,
이들이 어떻게 사용되는지 살펴보았다.