함수형 자바스크립트 기본기

dowon kim·2022년 6월 23일
0

평가

  • 코드가 계산(Evaluation) 되어 값을 만드는 것

일급

  • 값으로 다룰 수 있다.
  • 변수에 담을 수 있다.
  • 함수의 인자로 사용될 수 있다.
  • 함수의 결과로 사용될 수 있다.
<script>
  const a = 10;
  const add10 = a => a + 10;
  const r = add10(a);
  // log(r);
</script>

일급 함수

  • 함수를 값으로 다룰 수 있다.
  • 조합성과 추상화의 도구
<script>
  const add5 = a => a + 5;
  log(add5);
  log(add5(5));

  const f1 = () => () => 1;
  log(f1());

  const f2 = f1();
  log(f2);
  log(f2());
</script>

일급 함수

  • 함수가 값으로 다뤄질 수 있다.

고차 함수

  • 함수를 값으로 다루는 함수

함수를 인자로 받아서 실행하는 함수

  • apply1
  • times
<script>
  const apply1 = f => f(1);
  const add2 = a => a + 2;
  log(apply1(add2));
  log(apply1(a => a - 1));

  const times = (f, n) => {
    let i = -1;
    while (++i < n) f(i);
  };

  times(log, 3);

  times(a => log(a + 10), 3);
</script>

함수를 만들어 리턴하는 함수 (클로저를 만들어 리턴하는 함수)

  • addMaker
<script>
  const addMaker = a => b => a + b;
  const add10 = addMaker(10);
  log(add10(5));
  log(add10(10));
</script>

수강후기

js를 겨우떼고 es6+ 기준의 강좌를 보면서 트위터 클론코딩 및 더위터 커스텀을 통해 리액트를 학습했던 기억이 있는데 , 그 당시 굉장히 생소하며 생산성에 큰도움이 되던 문법들의 개념을 제대로 공부하게 되어 인상깊었다. 특히 고차함수를 통해 기존에 알던 문법으로는 짧은 코드로 정리하기 어려웠던 기능구현에서 도움을 받았지만 고차함수를 제대로 파악하지 못하고 대강 이해하고 넘어갔던 기억이 있어 큰 도움이 되었다.

profile
The pain is so persistent that it is like a snail, and the joy is so short that it is like a rabbit's tail running through the fields of autumn

0개의 댓글