모든 코드는 html
<script></script>
에서 실습했습니다.
Ex)
const a = 10 // 변수에 담을 수 있다
const add10 = a => a +10 //함수의 인자로 사용 될 수 있다.
const r = add10(a) //결과 20
Ex)
const add5 = a => a+5
console.log(add5) // a => a+5
console.log(add5(5)) //결과 10
const f1 = () => () => 1;
console.log(f1())
const f2 = f1();
log(f2) // () => 1
log(f2()) //1
즉, f1 라는 함수에 함수를 담고, 다시 f2라는 함수에 f1 함수를 담아 조합성을 만들고, 내가 원할때 값으로 표현 할 수 있다.
함수를 값으로 다루는 함수
함수를 인자로 받아서 실행해 주는 함수
Ex1) apply1 이라는 함수
const apply1 = f => f(1); // apply1 라는 함수는 f 라는 함수를 받아서 1이라는 함수를 적용하는 함수.
const add2 = a => a + 2;
log(apply(add2)) // 3
Ex2) times 라는 함수 (어플리케이티브 함수)
const times = (f, n) => {
let i = -1
while (++i< n) f(i)
}
times(log, 3)// 0,1,2
함수를 만들어서 리턴하는 함수 (클로저를 만들어 리턴하는 함수)
Ex) addMaker 라는 함수
const addMaker = a => b => a + b // b => a +b 는 a 를 기억하는 클로저!!!
const add10 = addMaker(10)
log(add10) // b=> a + b
log(add10(5)) // 15