함수형 프로그래밍 & es6

murkgom·2021년 9월 2일
0

0. 개념

iterator

  • next 함수를 가짐({ value, done }를 리턴)

iterable

1. 활용

for...of

let list = [1, 2, 3];
for (const a of list) console.log(a);
//1
//2
//3

전개 연산자(...)

let list = [1, 2, 3];
console.log(...list);
//1 2
console.log([...list, ...[4, 5]]);
//[1, 2, 3, 4, 5]

2. Generator

function *gen() {
	yield 1;
    if (false) yield 2;
    yield 3;
    
    return 100;
}
  • Generator : 이터레이터면서, 이터러블을 생성하는 함수
  • next()에 표출될 값을 코드를 통해 지정 가능(with yield)

3. 구조 분해

const [a, b, ...rest] = [1, 2, 3, 4, 5];
console.log(a);		//1
console.log(b);		//2
console.log(rest);	//(3) [3, 4, 5]

4. 모나드, 함수 합성

const g = a => a + 1;
const f = a => a * a;
//함수 합성
console.log(f(g(1)));		//4
console.log(f(g()));		//NaN
//안전한 함수 합성
[1].map(g).map(f).forEach(r => console.log(r));		//4
//NaN
[].map(g).map(f).forEach(r => console.log(r));

= Promise, then과 같은 개념

0개의 댓글