본문 바로가기
함수형프로그래밍 with

고차함수

by 안자바먹지 2021. 3. 24.
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

댓글