ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 고차함수(Higher-Order Function)에 대해서
    프론트엔드/JavaScript 2020. 9. 22. 00:15

    함수형 프로그래밍(Functional Programming)이란?

    함수형 프로그래밍은 자료의 처리를 함수의 계산으로서 취급하는 프로그래밍의 한 형태다.

     

    기존의 프로그래밍이 직접 손으로 짜거나 불완전한 구조였다면 함수 프로그래밍은 함수를 적극 활용하여 외부 입력에 따라 결과가 달라지거나 하는 등을 지양하는 프로그래밍이다.

     

    이때 사용되어야 하는 함수는 함수의 결과가 프로그램의 상태를 바꾸지 않고 함수의 결과값은 오로지 함수에게 주어진 입력된 인수에만 의존해야 한다. 또한 결과값은 항상 일정해야 한다.

    고차 함수(Higher-Order Function)란?

    함수형 프로그래밍을 하다보면 그 중 하나인 고차 함수를 쓰게 된다. 그리고 이 고차 함수의 조건은 다음과 같다.

     

    ● 하나 이상의 함수를 인수로 취할 수 있다.

     

    ● 함수 그 자체를 결과로 반환할 수 있다.

     

    그렇다면 당연히 프로그래밍 언어에서 고차 함수를 사용하기 위해선 위와 같은 조건을 지원해야 한다.

     

    그리고 이러한 조건을 만족하기 위해선 프로그래밍 언어는 함수를 일급 객체(First Class Object)으로 대우해야 한다.

    일급 객체(First-class Object)이란?

    일급 객체란 다른 객체와 차별 받지 않고 똑같은 대우를 받는 객체를 말한다.

     

    이때 이 객체가 받을 수 있는 조건은 다음과 같다.

     

    ● 모든 일급 객체는 함수의 매개 변수(파라미터)가 될 수 있다.

     

    ● 모든 일급 객체는 함수의 반환값이 될 수 있다.

     

    ● 모든 일급 객체는 변수나 각종 자료구조에 저장될 수 있어야 한다.

     

    ● 모든 일급 객체는 비교 연산자 사용이 가능해야 한다.

     

    즉 고차 함수의 조건을 만족하기 위해서는 프로그래밍 언어에서 함수를 일급 객체로서 대우해줄 때 고차 함수의 조건을 충족시켜줄 수 있다.

     

    이때 자바 스크립트의 경우는 함수를 일급 객체로서 다른 객체와 차별하지 않고 대우한다.

     

    그래서 자바스크립트에서는 함수 자체를 함수의 반환값으로 쓰거나 변수에 저장하거나 매개 변수 등으로 이용하라 수 있다.

Designed by Tistory.