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