在函数式编程中, 第一类值如下所示:
但是我找不到关于第二类价值或第3,第4,第5的任何定义。 我相信如果第一个存在,那么必须存在第二和第三......
什么是第二类值?
我可以找到这些值的一些例子吗?
(如果没有第二类值,那么业务类值呢?)
一般来说,头等舱乘客的待遇优先级较高。
是否更高优先级处理第一类值?如果是这样的编译器或运行时?
非常感谢你。
答案 0 :(得分:5)
也许你太挑剔了。
第一类值是那些具有值的所有属性的值(因此函数是第一类,因为你可以在函数上执行与在整数上相同的事情:将它们作为参数传递,将它们存储在字段中等等)
某些语言有一些非一流的功能。例如,在Ocaml3(但不是今天的Ocaml4)模块中存在但不能用作值(您无法将模块作为参数传递)。那时,模块不是一流的价值(你可以非正式地说模块是第二类的!)
我从来没有听说过三等等......
BTW,在许多语言中,甚至是功能语言,调用堆栈不是第一类值(你经常无法检查它,例如要求调用者的调用者)。甚至连续化(使用call/cc
)的Scheme也不能检查调用堆栈(但有些实现将此作为扩展)。检查closure内的封闭值通常是不可能的......
“头等”应该作为一个单独的形容词非正式地阅读(在这个意义上没有“类”的“基数集”)
注意:我不是以英语为母语的人,所以我无法理解所有英语语言的细微之处