Frontend/Functional Programming
함수형 자바스크립트 기본기
만발한매화
2025. 2. 14. 19:34
본 문서는 유동균의 함수형 프로그래밍 강의를 수강하고 공부한 자료이다.
1. 평가 : 코드가 계산되어 값을 만드는 것
2. 일급
- 값으로 다룰 수 있다.
- 변수에 담을 수 있다.
- 함수의 인자로 사용할 수 있다.
- 함수의 결과로 사용될 수 있다.
3. 함수 역시 일급이다.
- 함수를 값으로 다룰 수 있다. = 변수에 함수를 담을 수 있다.
- 함수는 평가를 통해 값을 다른 함수에게 전달할 수 있다.
- 함수의 결과값으로 함수를 가질 수 있다.
- 함수형 프로그래밍에서 조합성과 추상화의 도구로 사용이 가능하다.
4. 고차함수 : 함수를 값으로 다루는 함수
1. 함수를 인자로 받아 실행하는 함수
- 함수를 인자로 받아서 내부에서 실행하여 특정인자 적용하는 프로그래밍 : applicative programming
2. 함수를 만들어 리턴하는 함수 (클로저를 만들어 리턴하는 함수)
- 클로저 : 함수가 만들어질때의 인자를 기억하고 있는 함수
5. 클로저
- 함수와 함수가 선언덴 렉시컬 환경을 함께 저장하는 패키지이다.
function makeMultiplier(multiplier) {
// multiplier는 makeMultiplier의 렉시컬 환경에 있음
return function (num) {
return num * multiplier; // 내부 함수가 외부 함수의 multiplier를 참조
};
}
const triple = makeMultiplier(3); // triple이 클로저를 형성
console.log(triple(4)); // 12 (3 * 4)
여기서 makeMultiplier 실행이 끝났지만, 반환된 함수는 여전히 multiplier를 기억하고 있다.
- 장점
- 상태 유지: 함수가 호출될 때마다 특정 상태를 기억할 수 있음
- 캡슐화: 외부에서 내부의 값을 직접 변경하지 못하게 보호.
- 동적 함수 생성: 각기 다른 값을 기억하는 함수들을 손쉽게 생성할 수 있음.