본문 바로가기

Python

파이썬, 함수형 프로그래밍 (일급 함수)

일급 함수(First-class function)란 프로그래밍 언어에서 함수를 일반적인 값과 동일한 방식으로 취급하는 개념이다. 파이썬은 일급 함수를 지원하는 언어로, 함수를 변수에 할당하거나 함수를 다른 함수의 인자로 전달하거나 함수를 다른 함수의 반환값으로 사용할 수 있다. 파이썬은 함수를 자유롭게 조작하고 조합할 수 있는 강력한 기능을 제공한다. 

 

 

 

1. 변수에 할당 가능

 

함수는 다른 변수에 할당하여 참조할 수 있다. 이를 통해 함수를 변수로서 사용하거나 다른 함수에 전달할 수 있다.

 

def say_hello():
    print("Hello!")

my_function = say_hello  # 함수 할당

my_function()  # 함수 호출

# 출력 : Hello!

 

 

 

 

2. 함수의 인자로 전달 가능

 

함수는 다른 함수의 인자로 전달할 수 있다. 이를 통해 함수를 동적으로 전달하고 실행할 수 있다.

 

def greet(name, func):
    print(f"{name}", func())

def say_hello():
    return "Hello!"

greet("Minsu", say_hello)  # 함수를 인자로 전달

# 출력 : Minsu Hello!


 

 

 

3. 함수의 반환값으로 사용 가능

 

함수는 다른 함수의 반환값으로 사용될 수 있다. 이를 통해 함수 안에서 새로운 함수를 동적으로 생성하고 반환할 수 있다.
 

def multiplier(factor):
    def multiply(number):
        return factor * number
    return multiply

double = multiplier(2)  # multiplier 함수의 반환값으로 multiply 함수를 받음
triple = multiplier(3)  # multiplier 함수의 반환값으로 multiply 함수를 받음

result1 = double(5)  # multiply 함수 호출
result2 = triple(5)  # multiply 함수 호출

print(result1)  # 출력: 10
print(result2)  # 출력: 15

 

 

함수를 값으로 다룰 수 있기 때문에 함수를 추상화하고 재사용성을 높일 수 있으며, 고차 함수(Higher-order function)와 클로저(Closure)와 같은 개념과 함께 사용하면 파이썬에서 함수형 프로그래밍을 지원할 수 있다.