在Haskell中,可以定义数据类型,像这样:类型类Haskell中的数据类型
data Point1 = Point1 {
x :: Integer
, y :: Integer
}
可以在一个使用类型类数据类型内部变量?如果是这样如何?我意识到可以将其作为代数数据类型来完成,对于每种类型的点都有不同的定义,但是我想知道是否有办法以更紧凑和更灵活的方式来完成此任务。
例如沿着这伪线的东西,它使用的函数声明的语法:
data Point2 = Point2 {
x :: (Num a, Ord a) => a
, y :: (Num a, Ord a) => a
}
这样做的目的是允许一个存储诠释,整数,浮动或双值数据类型。理想情况下,我想限制它,使x和y必须是相同的类型。
更常见的情况是,在数据声明中脱离了上下文,并在类型实际使用的位置使用“(Num a,Ord a)=> Point2 a”,但这也起作用。 – ephemient 2009-07-05 06:37:02
谢谢。如果我看到它,那完美无缺,甚至有意义。 – Gregyski 2009-07-05 06:40:09