主要观点:Haskell 的表达型类型系统使类型签名可携带大量信息,多态性导致有时需用单字母变量名,介绍了一些单字母变量名在 Haskell 中的约定及含义,包括用于各种类型(如Arrow、Functor等)、约束、值(如ByteString、错误类型等)等方面,还提及变量命名常依赖上下文,该字典并非详尽,且给出了多个类型变量的示例和解释。
关键信息:
- 介绍了
a到z及_等单字母变量在 Haskell 中的多种用途,如a用于Arrow类型等,b用于ByteString等。 - 提到变量命名常依上下文而定,短变量名仅在合适语境中使用,如函数的
(...) =>上下文等。 - 说明字典并非 exhaustive,且感谢多人对其内容的贡献和建议。
重要细节: a:很少用于Arrow类型,常易混淆,推荐arr或k。b:作为值时不建议用于任意ByteString,更常用bytes。c:可用于约束或Category类的类型变量,可用cat或k替代。e:作为类型或值可用于“错误”或异常类型,个人更喜用ex。f、g、h:用于Functor或类似类型及任意函数。k:用于键值映射的键类型等多种情况,如mapWithKey中的k。m:用于Monoid或Monad类型及值,有时用m'等区分。n:用于类型级自然数或数值量。p:用于命题或谓词,个人更喜用pred_或f。s:用于状态类型或任意String/Text。t:用于Traversable或Foldable结构等。x、y、z:用于任意未知值,常加s后缀表示多个值。_:用于空白模式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。