평가
란?
일급
이란?
const a = 10;
const add10 = (a) => a + 10;
const r = add10(a);
log(r); // 20
const add5 = (a) => a + 5;
log(add5); // a => a + 5;
log(add5(5)); // 10
const f1 = () => () => 1;
log(f1()); // () => 1;
const f2 => f1();
log(f2); // () => 1;
log(f2()); // 1
함수를 값으로 다루는 함수로 2가지 유형이 있다.
const apply1 = (f) => f(1); // (a => a + 2)(1)
const add2 = (a) => a + 2;
log(apply(add2)); // 3
log(apply1((a) => a - 1)); // 0
// n만큼 실행하는 함수(f)
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
b ⇒ a + b
함수가 a
를 기억하고 있다는 의미const addMaker = (a) => (b) => a + b;
const add10 = addMaker(10);
log(add10(5)); // 15
log(add10(10)); // 20