위키피디아에서는 first-class citizen을 다음과 같이 정의하고 있습니다.
In programming language design, a first-class citizen (also type, object, entity, or value) in a given programming language is an entity which supports all the operations generally available to other entities. These operations typically include being passed as an argument, returned from a function, and assigned to a variable.
- Wikikpedia
프로그래밍 언어 디자인에서 프로그래밍 언어의 first-class citizen는 다른 엔티티가 일반적으로 사용할 수 있는 모든 작업들을 지원하는 엔티티라고 합니다. 이러한 작업들에는 객체 등을 함수의 인자로 넘기거나, 함수에서 반환하고 변수에 할당할 수 있는 것들이 포함되어 있습니다.
first, second class 객체의 개념은 1960년대 Christopher Strachey에 의해 소개되었습니다. 그는 실제로 용어를 엄격하게 정의하지는 않았지만 ALGOL에서 실제 수와 프로시져를 비교하였습니다.
그는 직접 변수에 할당할 수 있는 실수(real number)가 first-class citizen인 것과 달리 그렇지 못한 프로시저는 second-class citizen이라고 하였습니다.
일반적으로 1급 시민의 조건은 다음과 같이 정의한다고 합니다. (참고)
- 변수(variable)에 담을 수 있다
- 인자(parameter)로 전달할 수 있다
- 반환값(return value)으로 전달할 수 있다
'파이썬' 카테고리의 다른 글
[파이썬] 가변인자 (0) | 2016.11.17 |
---|---|
[파이썬] 퍼스트 클래스 함수 (First Class Function) (0) | 2016.11.17 |
[파이썬] 파이썬 공부 링크(코세라) (0) | 2016.11.14 |
[파이썬] 리눅스에서 파이썬으로 쉘 스크립트 실행하기 (0) | 2016.11.08 |
[파이썬] argparse로 유니코드 읽기 (0) | 2016.10.31 |