有人能给我一个明确的区分潜在和清单类型系统吗?潜类型和Manifest类型有什么区别?
4
A
回答
5
请参阅Lambda终极版上的Anton van Straaten's post。它描述了Scheme中的潜在类型。
明显类型将用于静态类型语言,其中类型的术语是语法声明的或可以在编译时从其他此类术语推断。
2
潜类型:一种不需要显式类型声明的打字风格。它与duck typing,dynamic typing和type inference有关。您可以使用Python,Lisp,Haskell等语言查看这些内容。
清单类型:明确标识所有已声明变量的类型。像C,C++和Java这样的语言遵循这一点。
9
有时候,相同的概念在计算机科学的不同领域独立发明。这是其中的一种情况。什么计划社会各界来电潜和清单打字,在世界其他地方调用隐含和明确打字。意思是完全一样的:
在明确/清单打字,程序员必须明确写下类型,因此类型在源代码中成为明显。
暗含/潜在打字时,程序员不写下类型。这些类型因此是隐含或潜在。
请注意,隐式与显式类型的问题完全与例如动态与静态输入,强与弱输入,声音与不稳定输入,安全与不安全输入以及名义与结构与鸭子输入。例如,Haskell隐含,强烈,静态,健全,安全,结构类型化。
1
难以回答您的问题的部分原因是,这是一个活跃的研究领域。特别是,有一大群人希望能够混合使用打字和非打字的语言,并允许程序在某些部分输入和某些部分不能输入。
我声称目前还没有广泛的一致意见,最终会把什么意义附加到术语“潜伏型”上。
但是,潜在类型和清单类型的问题与类型推断的问题并不相同。
类型推断是一种静态类型语言,是指一种系统,它可以在没有程序员帮助的情况下推导出程序术语的类型,通常使用hindley-milner风格类型的系统和统一。 Haskell和OCaml都有类型推断。
相关问题
- 1. 泛型类型和泛型类型定义有什么区别?
- 2. 选项类型和可空类型有什么区别?
- 3. 有什么区别扩展类型和类型
- 4. ASN.1枚举类型和选择类型有什么区别?
- 5. 两种(类型)值和类型(值)有什么区别?
- 6. 复合类型和匿名类型有什么区别?
- 7. 类型1和类型2模糊逻辑有什么区别?
- 8. C++“类型推导”和Haskell“类型推论”有什么区别?
- 9. Cython中numpy“类型标识符”和“类型”有什么区别?
- 10. 类型定义和类型引用有什么区别?
- 11. Haskell中的类型和数据类型有什么区别?
- 12. 正常类型和匿名类型有什么区别?
- 13. 类型转换和类型断言有什么区别?
- 14. 装配类型 - 有什么区别
- 15. Rails数据类型有什么区别?
- 16. 文档类型有什么区别
- 17. 将类型用作不同名称和类型别名有什么区别?
- 18. (类型)值和类型(值)之间的区别是什么?
- 19. Haskell中的类型构造函数和java泛型类型有什么区别?
- 20. 基元类和基元数据类型有什么区别?
- 21. ruby中类的类型和超类的区别是什么?
- 22. 对象类型和字典类型的映射对象有什么区别
- 23. 委托类型和事件处理程序类型有什么区别?
- 24. C#中值类型和引用类型之间有什么区别?
- 25. 路径依赖类型和依赖类型之间有什么区别?
- 26. “流类型”套接字和“数据报”套接字类型有什么区别?
- 27. 有界通配符和类型参数有什么区别?
- 28. Debug类和Trace类有什么区别?
- 29. ConfigurationManager类和Settings类有什么区别?
- 30. HostingEnvironment类和HttpRuntime类有什么区别?
我不知道哈斯克尔,你能否说明哈斯克尔中那些类型的特征? – unj2 2009-12-19 22:09:03
加1!但Haskell在结构上如何输入? – 2015-01-25 11:29:31