똑같은 삽질은 2번 하지 말자
Javascript ES6+ 에서 함수형 프로그래밍(평가, 일급, 일차함수, 고차함수) 본문
평가
코드가 계산되어 값을 만드는 것
일급
- 값으로 다룰 수 있다.
- 변수에 담을 수 있다.
- 함수의 인자, 결과로 사용될 수 있다.
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);
'Javascript' 카테고리의 다른 글
Javascript ES6+ 에서 함수형 프로그래밍(제너레이터) (0) | 2021.08.21 |
---|---|
Javascript ES6+ 에서 함수형 프로그래밍(리스트 순회, Iterable Iterator 프로토콜 ) (0) | 2021.08.16 |
Promise.all() 여러개의 비동기함수를 실행 (0) | 2021.08.04 |
내가 원하는 노드(태그)로 자동 스크롤 하는 방법 (0) | 2021.07.19 |
URI에서 한글인식이 안될때, 특수문자를 데이터로 넣을 경우 (0) | 2021.04.17 |
Comments