键入pararmeter作为数据/值构造函数



阅读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)。但Int是一种类型,可能不是数据构造函数的有效名称/标识符。这是怎么回事?

在本例中,x不是数据构造函数,而是:&::<=::>=::==:Free。除了Free之外,这些都是中缀数据构造函数。最著名的例子是列表"append"运算符:

最新更新