在《编程语言设计概念》一书中,它说:
PYTHON将过程(procedures)与所有原始值和复合值视为一等值,因此PYTHON很好地符合类型完备性原则。
我还是不理解。
PYTHON将过程(procedures)与所有原始值和复合值视为一等值,因此PYTHON很好地符合类型完备性原则。
我还是不理解。
类型完��性原则:
不应该随意限制所涉及值的类型。
- David A. Watt
一等值可以被评估,作为参数传递,并用作复合值的组成部分。函数式语言试图不做任何类别区分,而命令式语言通常将函数(最多)视为二等值。
几乎所有编程语言都限制了可能作为值传递(因此具有有意义类型)的实体种类。在 C 或 C++ 中,函数不是值,尽管函数指针是值。类不是值。
在 Java 中,方法和类不是值,但您可以获得表示类的具象化对象作为值,并且在 Java 8 中,您可以将方法引用作为���传递。包不是值。
在 Haskell 中,函数是一等值,因此可以作为参数传递并作为值返回。由于 Haskell 是静态类型的,类型系统能够表达函数类型。