참고한 것들
First-class (= High order), Second-class (= First order)
- 서로 반대의 개념인데
- First-class Citizen (High-order function) : 함수형 기능을 지원하는 언어처럼 함수를 하나의 객체로 취급해 인자로 받을 수 있고 함수를 반환하는것도 가능
- Second-class Citizen (First-order function) : C 언어처럼 함수를 인자로 받지도 못하고 함수를 반환하지도 못하는 특성
- 함수를 객체 / 변수와 별도로 취급함
- 변수와 별도로 취급하기 때문에 변수를 저장하는 추상 메모리와 별도로 추가로 함수를 저장할 추상 메모리가 필요함