haskell - haskell 中非记录数据构造函数的术语
问题描述
data A b c = B | C b | H { b :: b, c :: c }
AFAIK,B
称为空元构造函数C
称为一元构造函数,而H
称为记录。
B
但是,包含和的任意数量构造函数的术语是什么C
?有没有比非记录构造函数更好的东西?
解决方案
我不确定他们应该得到一个特殊的名字。记录构造函数基本上只是一个非记录构造函数,具有一些自动定义的访问器函数和方便的语法支持。在上面的示例中,我会考虑H
二进制构造函数或 arity 2 的构造函数,因为我可以像任何其他二进制构造函数一样构造和破坏它:
let H a b = H (1+1) (2+2) in (a,b)
值得一提的是,Haskell98 报告只是称它们为“带有字段标签的构造函数”和“没有字段标签的构造函数”,并且非常清楚地表明,即使有字段标签,它们仍然是“arity k 的数据构造函数”。
推荐阅读
- mysql - Mysql查询到存储过程
- java - 如何将drawable放在android java的textView中间
- azure - 使用不同租户上的 Azure Active Directory 访问 Azure Service Fabric 应用程序上的 Key Vault
- python - 从 python 获取使用 ai-platform 部署的模型的指标
- c# - 用于查找数组中重复次数最多的 C# 函数
- go - go.mod:强制使用特定版本进行间接依赖
- python - 使用来自nodejs的库运行python脚本?
- delphi - 在 Delphi 10.3 中无法连接到 SQL Server
- javascript - data.slice 不是一个函数 React
- angular - 如何使用 Angular 12 中的动画为 :leave 事件上的 :host 元素设置动画?