Day.7 함수형프로그래밍과ES6 (2021.08.10)

함수형 프로그래밍

map, filter, reduce의 인자로 함수를 전달할때에는 함수가 평가되었을때 어떤 모습일지 생각을 해보자

추상화를 통해 더 가독성 있는 코드를 만들자

이터러블

@@iterator를 가지고 있는 객체 [Symbol.iterator] 프로퍼티를 가지고있어야한다.

이터레이터 프로토콜

next()를 통해 {value,done}(이터레이터)를 순회할수 있다.

for...of를 통해 값을 순회할수있다.

...전개연산자를 통해 값을 전개할수 있다.

제너레이터

function* genertator(){
  yeild 1;
 }

위에 코드 처럼 function 뒤에 *을 붙이며 return 대신에 yeild를 통해 이터레이터를 만들고 지연평가를 한다.

지연평가

모든값을 순회하는것이 아니라 다음 함수에게 평가를 지연시킨다.

느낀점

함수형 프로그래밍으로 코딩테스트 문제를 풀려고하다보니 제너레이터,이터레이터가 뭔지 조금은 알것같고 지연평가에 대해서도 감이 잡히는것 같다. 하지만 나도 모르게 코딩테스트 문제를 풀다보면 함수형 프로그래밍을 해야하지만 함수를 생성할때 기존방법으로 풀던 습관이 묻어나온다.
함수형 프로그래밍은 하나의 패러다임이기때문에 정확한 기준은 없지만 되도록 함수를 잘게 나누어 다형성을 확보하고 외부 요인을 건드리지 않는 방법으로 연습이 필요할 것같다.

좋은 웹페이지 즐겨찾기