평가
- 코드가 계산(Evaluation) 되어 값을 만드는 것
1
1 + 2
[1, 2]
[1, 2+3]
[1,2, ...[3,4]]
일급 함수
- 값으로 다룰 수 있다.
- 변수에 담을 수 있다.
- 함수의 인자로 사용될 수 있다.
- 함수의 결과로 사용될 수 있다.
- 조합성과 추상화의 도구
const a = 10;
const add10 = a => a+10
const r = add10(a)
console.log(r)
const f1 => () = () => 1;
console.log((f1());
const f2 = f1();
console.log(f2);
console.log(f2());
고차 함수
함수를 인자로 받아 실행하는 함수
const apply1 = f => f(1);
const add2 = a => a+2;
console.log(apply1(add2));
const times = (f,n) => {
let i = -1;
while(++i <n) f(i);
}
times(console.log, 3);
times(a=>console.log(a+10),3)
함수를 만들어 리턴하는 함수 (클로저를 만들어 리턴하는 함수)
const addMaker = a => b => a+b;
const add10 = addMaker(10);
console.log(add10)
console.log(add10(5));
console.log(add10(10));