Book/전문가를 위한 파이썬

[전문가를 위한 파이썬] Chapter 5. 일급함수

쟈누이 2020. 11. 1. 16:19
반응형

파이썬의 함수는 일급 함수라고 하는데, 여기서 일급함수의 정의는 무엇일까?

 

일급함수란?

함수를 다른 변수와 동일하게 다루는 언어를 일급함수를 가졌다고 표현한다.

즉, 프로그래밍 언어에서 함수를 값으로 다룰 수 있는 것이다 ( 함수 스스로를 객체로 취급 하는 것)

 

정리하자면, 함수를 변수에 담에 유저가 원할때 함수를 호출하는 것이다.

예를 들어 일급 함수를 가진 언어에서는 다른 함수에 매개 변수로 제공하거나, 

함수가 함수를 반환할 수 있으며, 변수에 할당할 수 있다.

 

일급 객체의 정의

( 아래와 같은 작업을 수행할 수 있는 프로그램 개체 )

 

- 런타임에 생성할 수 있어야 함

- 데이터 구조체의 변수나 요소에 할당할 수 있어야 함

- 함수 인수로 전달할 수 있어야 함

- 함수 결과로 반환할 수 있어야 함

 

 

예시 (example)

def factorial(n):
    '''returns n!'''
    return 1 if n < 2 else n * factorial(n-1)

fact = factorial

print(fact)
>> <function factorial at 0x0000026D93FCC948>

print(fact(5))
>> 120

print(map(factorial, range(11)))
>> <map object at 0x0000026D9412EF48>

print(list(map(factorial, range(11))))
>> [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]

 

위 함수는 일급함수 의 본질을 보여준다.

factorial 함수를 fact 라는 변수에 할당하고, 

 

이 fact 라는 변수를 통해 factorial 함수를 호출하는 것이다.

그리고 fact 를 통해서 map( ) 함수의 인수로 전달하고

함수 결과를 반환할 수 있다.

 

위와 같은 함수를 일급함수라고 하며,

파이썬에서는 모든 함수가 일급함수라고 불린다.

 

 

 

 

 

참고 링크

 

developer.mozilla.org/ko/docs/Glossary/First-class_Function

 

일급 함수

함수를 다른 변수와 동일하게 다루는 언어는 일급 함수를 가졌다고 표현합니다. 예를 들어, 일급 함수를 가진 언어에서는 함수를 다른 함수에 매개변수로 제공하거나, 함수가 함수를 반환할 수

developer.mozilla.org

book.naver.com/bookdb/book_detail.nhn?bid=10910543

 

전문가를 위한 파이썬

파이썬 기능을 활용하여, 효율적인 파이썬 코드 작성 방법을 제시하는 실용 안내서『전문가를 위한 파이썬』. 이 책은 특히 다른 언어에서는 찾아볼 수 없는 파이썬 고유의 기능을 중점적으로

book.naver.com

 

반응형