컴퓨터과학 일등시민이란?

컴퓨터 과학에서 일급 시민은 다른 엔터티가 사용할 수 있는 모든 작업을 지원하는 엔터티입니다. 사용 가능한 작업 중 일부는 다음과 같습니다.
  • 변수로 이름을 지정할 수 있습니다.
  • 프로시저에 대한 인수로 전달될 수 있습니다.
  • 절차의 결과로 반환될 수 있습니다.
  • 데이터 구조에 포함될 수 있습니다.

  • 영국의 컴퓨터 과학자 Christopher Strachey(1916-1975)who first는 1960년대에 프로그래밍 언어 요소의 일급 시민 상태라는 개념을 만들어 냈습니다.

    예를 들어 JavaScript에서 함수는 위에서 언급한 모든 작업을 함수에 적용할 수 있으므로 일급 시민입니다. 몇 가지 예를 살펴보겠습니다.

    JavaScript의 간단한 함수 정의

    function sum(a, b) {
      return a + b
    }
    


    함수에 상수 할당

    const sum = (a, b) => a + b
    
    // or
    // 
    // const sum = function (a, b) {
    //   a + b
    // }
    


    함수를 인수로 전달

    function sum(a, b, callback) {
      const result = a + b
    
      if (typeof callback === 'function') {
        callback(result) // pass the result as an argument of `callback`
      }
    
      return result
    }
    
    //        Pass `console.log` as the callback function
    // -------\/
    sum(2, 2, console.log) // => 4
    


    함수 반환

    function sum(a, b, callback) {
      const result = a + b
    
      if (callback) {
        return () => callback(result)
      }
    
      return result
    }
    
    //            The callback is the sum of the result with 2.
    // ------------------\/
    const fn = sum(2, 2, (result) => sum(2, result))
    //    ^---- Store the returned function in a variable
    
    //          Execute the function
    // ---------\/
    console.log(fn()) // => 6
    


    데이터 구조에 함수 포함

    // Store the basic operations in an object
    const operations = {
      sum: (a, b) => a + b,
      sub: (a, b) => a - b,
      mul: (a, b) => a * b,
      div: (a, b) => a / b,
    }
    

    좋은 웹페이지 즐겨찾기