[PYTHON] First class function

sicksong·2022년 5월 11일
0

PYTHON

목록 보기
1/5
post-thumbnail

First Class function

프로그래밍 언어가 함수 (function) 를 first-class citizen으로 취급하는 것을 뜻한다.
쉽게 설명하자면 '함수 자체'를 '인자 (argument) 로써' 다른 함수에 전달하거나 다른 함수의 결과값으로 리턴 할수도 있고, 함수를 변수에 할당하거나 데이터 구조안에 저장할 수 있는 함수를 뜻한다.

first-class citizen(1급 객체)
아래 3가지 조건을 충족한다면 1급 객체라 할 수 있다.
1. 변수나 데이터에 할당 할 수 있어야 한다.
2. 객체의 인자로 넘길 수 있어야 한다.
3. 객체 리턴값으로 리턴 할수 있어야 한다.

사실상 python에서 모든 함수는 first-class 이다.

  • 런타임에 생성할 수 있다
  • 데이터 구조체의 변수나 요소에 할당할 수 있다
  • 함수 인수로 전달할 수 있다
  • 함수 결과로 리턴할 수 있다
    • 위와 같은 작업을 수행할 수 있으면 프로그램 개체를 first-class로 정의한다

이미 정의된 여러 함수를 간단히 재사용 할 수 있다.

def squre(x):
  return x*x

def cube(x):
  return x*x*x

def quad(x):
  return x*x*x*x
  
def power(func, arr):
  result = []
  for i in arr:
    result.append(func(i))
  return result

num = [1,2,3,4,5]

print(power(square, num))
>> [1, 4, 9, 16, 25]

print(power(cube, num))
>> [1, 8, 27, 64, 125]

print(power(quad, num))
>> [1, 16, 81, 256, 625]

Reference


profile
세상을 선명하게

0개의 댓글