기초/자바스크립트

[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