개발 R.I.P.

고차함수 #1

편행 2021. 4. 28. 23:10
반응형

각 단어의 개념을 먼저 정확히 이해해야한다.

 

일급 객체 (first-class citizen)란?

다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다.

 

---> 정확히 이해가 되지 않는 정의 이므로 1급 객체로 분류될 수 있는 조건들을 정리한다.

 

  1. 모든 일급 객체는 함수의 실질적인 매개변수가 될 수 있다.
  2. 모든 일급 객체는 함수의 반환값이 될 수 있다.
  3. 모든 일급 객체는 할당의 대상이 될 수 있다.

이 조건들로 알 수 있는 점은 함수를 데이터(string, number, boolean, array, object)처럼 다룰 수 있다는 것이다.

즉 변수에 할당이 가능한 것처럼 함수에도 할당이 가능하다는 것

 

함수가 이런 특성을 갖고 있기에, 고차함수를 만들 수 있다.

 

고차함수(higher-order function)란?

함수를 인자(argument)로 받을 수 있고, 함수의 형태로 리턴할 수 있는 함수이다.

고차함수를 쓰면, 데이터를 처리함에 있어 생산성을 늘려줄 수 있다고 한다.

 

콜백함수(Callback function)란?

 

다른 함수의 인자로 전달되는 함수이다. 어떤 작업이 완료되었을 때 호출하는 경우가 많다.

이건 쉽게 생각하면 될 것 같은데, 함수가 매개변수로 들어가면, 그것이 콜백함수라 생각하면 될 듯하다.

 

(과연 이 생각이 얼마나 옳게 유지될 것인지.... 계속 그 의미를 더욱 고민해봐야 할 듯 하다)

반응형