Javascript
Javascript ES6+ 에서 함수형 프로그래밍(평가, 일급, 일차함수, 고차함수)
곽빵
2021. 8. 16. 22:14
평가
코드가 계산되어 값을 만드는 것
일급
- 값으로 다룰 수 있다.
- 변수에 담을 수 있다.
- 함수의 인자, 결과로 사용될 수 있다.
const a = 10; // 변수가 되며, 값으로 다루어진다.
const add10 = a => a + 10; // 함수의 인자로 사용될 수 있다.
const r = add10(a); // 함수의 결과로 사용될 수 있다.
일급함수
- 함수를 값으로 다룰 수 있다.
- 조합성과 추상화의 도구
const add5 = a => a + 5; // 함수를 값으로 다룰수 있다.
log(add5); // a => a + 5;
log(add5(5)); // 10
const f1 = () => () => 1; // 함수를 리턴하는 함수
log(f1()); // () => 1;
const f2 = f1();
log(f2); // () => 1
log(f2()); // 1
고차함수
- 일급함수가 값으로 다루어 짐으로써 그 일급함수를 값으로 다루는 함수
const apply1 = f => f(1); // 함수를 인자로 받아서 실행하는 함수
const add2 = a => a + 2;
log(apply1(add2)); // 3
log(apply1(a => a - 1)); // 0
const times = (f, n) => { // 함수와 상수를 인자로 받아서 실행하는 함수
let i = -1;
while (++i < n) f(i); // 받은 함수를 n만큼 실행
};
times(log, 3);
times(a => log(a + 10), 3);