[functional JS ES6+] 기본기
작성:    
업데이트:
카테고리: Functional JS
태그: FE Language, Functional JS, JS
본 포스트는 인프런의 함수형 프로그래밍과 JavaScript ES6+ 강의(링크)를 듣고 정리한 내용입니다.
용어
평가(execution)
코드가 계산(evaluation) 되어 값을 만드는 것
1 + 2 //3
일급 함수
const add5 = a => a + 5;
log(add5);
log(add5(5));
const f1 = () => () => 1;
log(f1());
- 함수를 값으로 다룰 수 있다.
- 함수의 인자와 결과로 다룰 수 있다.
- 함수가 일급이라는 점을 이용해 조합성과 추상화 확보
고차 함수
- 함수를 값으로 다루는 함수
함수를 인자로 받아서 실행하는 함수
const apply1 = f => f(1);
const add2 = a => a + 2;
log(apply1(add2)); // 3
// n번 f 함수를 실행하는 함수
const times = (f, n) => {
let i = -1;
while (++i < n) f(i);
}
times(log, 3); // 0; 1; 2;
times(a => log(a+10), 3); // 10; 11; 12;
- apply1은 함수를 인자로 받아 실행하므로 고차함수
함수를 만들어 return하는 함수
const addMaker = a => b => a + b;
const add10 = addMaker(10);
log(add10(5)); //15
- 함수를 return하기 때문에 addMaker는 고차함수
- 정확히는 클로저를 return. 위의 예에서는 a를 기억하는 함수
댓글남기기