함수형 프로그래밍과 JavaScript ES6+ 강의를 듣고 정리한 내용입니다.
편의상 코드 상단에 console.log를 log 변수에 담는 코드 한줄을 작성합니다.
<script> const log = console.log; </script>
const a = 10
const add10 = (a) => a + 10
const r = add10(a)
const add5 = (a) => a + 5;
log(add5);
log(add5(5));
const f1 = () => () => 1;
log(f1());
constf2= f1();
log(f2);
log(f2());
함수를 값으로 다루는 함수
const apply1 = f => f(1); // 함수를 인자로 받아서 실행하는 함수
const add2 = a => a + 2;
log(apply1(add2)); // 3
log(apply1(a => a - 1)); // 0
const times = (f, n) => {
let i = -1;
while(++i < n) f(i);
};
times(log, 3);
// 0
// 1
// 2
times(a =>log(a+ 10), 3);
// 10
// 11
// 12
const addMaker = a => b => a + b;
constadd10= addMaker(10);
log(add10); // b => a + b
log(add10(5)) // 15