회고

오늘은 객체와 배열을 통해 데이터 처리 연습을 했다. 그 중에서도 higher order function(고차함수)인 map / filter / reduce 패턴을 직접 구현해보며, 동작 방식을 이해할 수 있었고 몇 가지 유용한 점을 느꼈다.

  • 각 요소를 개별적으로 작업할 필요없이, 전체 시퀀스를 하나의 단위로 처리가 가능하다.
  • for, if 제어문없이 map, filter, forEach 함수를 이용해 기능 구현이 가능하다.
  • 지역 변수를 줄일 수 있다.

또한, 각 함수는 Eager Evaluation 방식으로 구현하고, 아쉬운 점도 많았다.

  • iterable 객체를 파라미터로 받으며 함수 조합성(합성)을 제대로 지원하지 못하였다.
  • Eager Evaluation 방식으로 구현하며 시간 복잡도가 높았다.
  • Lazy Evaluation 방식은 for 제어문으로 구현했을 때와 동일한 시간 복잡도로 구현이 가능하여 효율적이다.

주말에 Lazy Evaluation 방식으로 구현해 봐야겠다...

참고 사항

higher order function (고차함수)

  • 함수를 파라미터로 전달 받는 함수
  • 함수를 리턴하는 함수