添加
刚发现两个相关问题
/programming//a/2582804/156458
在编程语言中,来自Michael Scott的Programming Language Pragmatics
通常,如果编程语言中的值可以作为参数传递,从子例程返回或分配给变量,则称其具有 第一类状态。在大多数编程语言中,简单类型(例如整数和字符)是第一类的值。相比之下,“第二类”值可以作为参数传递,但不能从子例程返回或分配给变量,并且“第三类”值甚至不能作为参数传递。
标签是大多数编程语言中的三等值,但在Algol中是二等值。子例程显示最多的变化。它们是所有函数式编程语言和大多数脚本语言中的一流值。它们也是C#中的第一类值,并且在某些限制下,在其他几种命令性语言中(包括Fortran,Modula-2和-3,Ada 95,C和C ++),也是第一类值。11在大多数其他命令式语言中,它们是二等值,在Ada 83中是三等值。
编程语言中一等/二等/三等值的数学基础是什么?
该术语使我想起了一阶/二阶逻辑,但是它们有关系吗?
在我看来,它们之间的区别在于可以使用哪种特定情况下的值
- 作为参数传递,
- 从子例程返回,或者
- 分配给变量。
为什么特定案例很重要,而其他案例没有提到?
谢谢。