728x90
고차함수
고차함수란?
크게 보면 함수를 값으로 다루는 함수를 말한다.
세부적으로 보면 아래와 같이 2가지로 나눠볼 수 있다.
함수를 인자로 받아서 실행해 주는 함수
const apply1 = f => f(1)
const add2 = a => a + 2
apply1(add2) // 3
apply1(a => a - 1) // 0
// 인자로 넘어온 함수를 n번 실행시키는 함수
const times = (f, n) => {
let i = 0
while (i++ < n) f(i)
}
times(a => console.log(a + 10), 3) // 10 11 12
함수를 만들어 리턴하는 함수 (클로저를 만들어 리턴)
const addMaker = a => b => a + b
const add10 = addMaker(10)
console.log(add10) // // 함수가 실행되었을 때 함수를 리턴한다. b => a + b
add10(5) // 15
add10(10) // 20
여기서 클로저를 만들어 리턴한다고 하였는데, 그 의미는 b => a + b 함수가 a 를 기억한다는 의미이다.
그래서 b => b + a 함수는 a를 기억하는 클로저라고 할 수 있다.
728x90
'함수형프로그래밍 with ' 카테고리의 다른 글
제너레이터와 이터레이터 (0) | 2021.03.24 |
---|---|
이터러블/이터레이터 프로토콜 (0) | 2021.03.24 |
댓글