在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