在程序语言中,一个 value 被称作 first class 的条件是:
- 可被作为参数传递
- 可以被子程序返回
In computer programming, a subroutine is a sequence of program instructions that performs a specific task, packaged as a unit.
- 可以给变量赋值
整型数、字符等类型在大多程序语言中都是 first-class values,对比之下,second-class values 可以作为参数被传递,但是不能被子程序返回,或者给变量赋值。而 third-class values 甚至不可以作为参数被传递。
在所有函数式编程语言中,子程序都是 first-class values(这大概是为什么叫做函数式编程语言的原因吧)。
参考资料
[1] Scott, Michael Lee. Programming language pragmatics. Morgan Kaufmann, 2000.