기초/자바스크립트
[JS] 일급 함수와 고차함수
장동규
2022. 12. 14. 19:04
인프런 강의 정리
함수형 프로그래밍과 Javascript ES6+
일급함수
- 함수를 값으로 다룰 수 있다.
- 조합성과 추상화의 도구이다.
- 함수가 값으로 다뤄질 수 있다.
고차함수
- 함수를 값으로 다루는 함수
- 함수를 인자로 받아서 실행하는 함수
-일급함수 예제
const inc = x = x + 1;
log( inc ); // x = x + 1
log( inc(10) ); // 11
const func1 = () = () => 1;
const func2 = func1();
log( func1() ); // () => 1
log( func2 ); // () => 1
log( func2() ); // 1
고차함수 - 함수를 인자로 받아서 실행하는 함수
const apply = func => func(1);
const inc = x = x + 1;
const repeat = (func, n) => {
let i = -1;
while(++i < n) func(i);
}
repeat(log, 5); // 0 1 2 3 4
repeat(a => log(a + 10), 3); // 10 11 12 13 14
고차함수 - 함수를 만들어 리턴하는 함수 ( 클로저를 만들어 리턴하는 함수 )
- addMaker
const addMaker = a = b = a + b;
const add10 = addMaker(10);
log(addMaker); // b = a + b ( 클로저가 리턴됨 )
log(add10(5)); // 15
log(add10(10)); // 20