[python] 일급 함수와 클로저의 차이점은 무엇인가요?

일급 함수와 클로저는 파이썬에서 함수형 프로그래밍을 지원하는 중요한 개념입니다. 이 둘 사이에는 몇 가지 차이점이 있습니다.

일급 함수 (First-class functions)

def add(a, b):
    return a + b

# 함수를 변수에 할당
sum_func = add

# 변수로 함수 실행
result = sum_func(3, 4)

print(result) # 출력: 7

클로저 (Closure)

def outer_func(x):
    def inner_func(y):
        return x + y
    return inner_func

add_by_five = outer_func(5)
result = add_by_five(3)

print(result) # 출력: 8

클로저는 외부 함수의 변수를 보호하고, 내부 함수가 외부 변수에 계속 접근하면서 필요한 상태를 유지하는 데에 활용됩니다. 일급 함수와 달리 클로저는 주로 함수를 반환하는 데에 초점을 맞추고 있습니다.

일급 함수와 클로저는 함수형 프로그래밍의 핵심 개념으로서, 함수를 다른 변수와 마찬가지로 다룰 수 있다는 유연성과 코드의 모듈성을 높여줍니다.

더 자세한 내용은 다음 참고 자료를 참고하세요.