First Class Function

First Class Function

First Class Function 이란, 프로그래밍 언어가 함수를 first-class citizen으로 취급하는 것을 말한다.

함수를 first-class citizen으로 취급하면 함수를 변수에 할당하거나, 다른 함수의 인수로 전달될 수 있으며, 함수의 반환값으로도 사용할 수 있음을 의미한다.

이를 통해 함수를 조합해서 다양한 동작을 수행하는 함수를 작성할 수 있으며, 이러한 기능은 함수형 프로그래밍에서 매우 유용하다.

그리고 이러한 기능이 있기에 람다 함수를 활용해 더욱 간결한 코드를 작성할 수 있는 것이다.


람다 관련 글


파이썬에서의 First-class 함수 예시

1. 함수를 변수에 할당하기

def add(x, y):
    return x + y

sum = add
print(sum(1, 2))

add 함수를 변수 sum에 할당하고 이 변수를 호출하여 함수를 실행한다.

2. 함수를 인자로 전달하기

def greeting(name):
    return "Hello, " + name

def call_greeting(greeter, name):
    return greeter(name)

print(call_greeting(greeting, "Finn"))

call_greeting 함수는 greeter 인자로 함수를 받아들이고 함수 name 인자와 함께 실행한다.

여담으로 이 예시의 경우 파이썬의 타입힌팅을 적용하면 좋은 예제로 생각된다.

def greeting(name: str) -> str:
    return "Hello, " + name

def call_greeting(greeter: callable, name: str) -> str:
    return greeter(name)

print(call_greeting(greeting, "Finn"))

3. 함수를 반환하기

def multiply(x):
    def multiplier(y):
        return  x * y 
    return multiplier

double = multiply(2)
print(double(3))

multiply 함수는 multiplier 함수를 내부에서 정의하고, 이 함수를 반환한다.

즉, double 변수에는 multiplier 함수가 할당된 것이다. 이 변수를 호출하여 인자값으로 3을 넣는 double(3) 이 식은 multiplier(3)과 같다.

 

 


부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.


 

'Python > Python' 카테고리의 다른 글

Python에서의 캡슐화  (0) 2023.04.28
Subtype in Python  (0) 2023.03.30
파이썬에서 Function과 method의 차이  (0) 2023.03.20
Python 에서의 Lambda method  (0) 2023.02.22
참조에 의한 변수와 객체 연결  (0) 2023.01.11