我试图减少我对 Haskell 语法的困惑,并想了解 Haskell 中单独的命名空间是什么。
命名空间是指与编译器管理的各种符号表相对应的语法命名空间,而不是代码中定义的名称范围。
例如:
- 值名称(如函数名称)
- 数据构造函数
- 类型构造函数
- 类型参数(在类型定义中)
- 实例?
- ...?
我之所以感兴趣,是因为我在阅读 Haskell 代码时遇到了问题(肯定比任何其他语言都多),因为我经常很难弄清楚我到底在看什么(尤其是数据/类型构造函数/类型声明)。
Haskell 似乎<name> <name> ...
在许多地方重用了一些句法结构(尤其是 )并依赖于上下文 - 结果证明编译器在这方面比我好得多......