haskell - 类型参数作为数据/值构造函数
问题描述
通读Numeric.LinearProgramming
我对类型声明感到困惑
data Bound x = x :<=: Double
| x :>=: Double
| x :&: (Double, Double)
| x :==: Double
| Free x
deriving Show
假设我们输入Int
代替x
。那么 Bound Int 类型的成员将类似于Int :&: (1.2345 :: Double)
. ButInt
是一种类型,并且可能不是数据构造函数的有效名称/标识符。这里发生了什么?
解决方案
在这个例子中,x
不是数据构造函数,而是:&:
, :<=:
, :>=:
, :==:
, 和Free
。除此之外Free
,这些都是中缀数据构造函数。最著名的例子是列表“追加”运算符,:
.
推荐阅读
- c# - 从 VB.NET 转换为 C# 时,无法分配到,因为它是一个方法组
- postgresql - 查询返回“预期 0 个参数,得到 1”
- composer-php - Composer 插件:如何添加自定义自动加载器?
- regex - 用于验证 SSN 异常的正则表达式
- terraform - 如何在 terraform avi gslb 中实现 for_each 以创建多个池并将其附加到 gslb?
- python - 当调试器转到另一个文件时,为什么我的 pdb 断点会消失?
- python - 注释一些线图观察
- ssl - 如果没有 --capath 选项,带有 SSL 和通配符证书的 Mosquitto 将无法工作
- python - 如何在 Python 轮中包含外部文件?
- mysql - 按日期/时间查找重叠会议