In Haskell, si può definire un tipo di dati in questo modo:classi di tipo a tipi di dati Haskell
data Point1 = Point1 {
x :: Integer
, y :: Integer
}
Can classi Un tipo uso per le variabili all'interno di un tipo di dati? Se é cosi, come? Mi rendo conto che è possibile farlo come un tipo di dati algebrico, con una definizione diversa per ogni tipo di punto, ma mi chiedo se c'è un modo per farlo in un modo più compatto e flessibile.
ad es. Qualcosa sulla falsariga di questo pseudocodice che usa la sintassi dichiarazione di funzione:
data Point2 = Point2 {
x :: (Num a, Ord a) => a
, y :: (Num a, Ord a) => a
}
L'obiettivo sarebbe quello di consentire di memorizzare Int, Integer, Float o doppie valori nei dati genere. Idealmente, mi piacerebbe restringerlo in modo che xey debbano essere dello stesso tipo.
Woohoo, questo è esattamente il punto che stavo ottenendo nel mio commento alla risposta di newacct ma era troppo pigro per scrivere :) – ephemient
Questo è molto istruttivo. Ho finito per usare il commento di ephemient sopra nel mio codice. E la tua spiegazione mi ha aiutato a capire molto. (RWH non ha ancora coperto "istanza" ma è evidente ciò che fa dal contesto.) Grazie mille. – Gregyski