2011-10-27 11 views

risposta

37

Tipo e tipo di dati fare riferimento esattamente allo stesso concetto.

La Haskell parole chiave type e data sono diversi, però: data consente di introdurre un nuovo tipo di dati algebrico, mentre type fa solo un tipo di sinonimo.

Vedere Haskell wiki per dettagli.

+1

Per completare il quadro, c'è' newtype' troppo Affrontare la differenza tra 'newtype T a = T a' e' data T a = T a' è difficile, ma piuttosto importante –

+0

ho visto quel newtype su un esempio Quindi, qual è la differenza nel tuo esempio? – user997112

+1

@ user997112 'newtype' è solo un tipo in fase di compilazione utilizzato per creare una sorta di sinonimo, ma trattato come un tipo diverso.Potresti racchiuderlo in un' data', ma aggiungerebbe un sovraccarico in fase di esecuzione. 'newtype' esplicita al compilatore che vuoi la differenziazione del tipo, senza il sovraccarico di run-time lunga storia: http://www.haskell.org/haskellwiki/Newtype – Ptival

1

I termini sono talvolta misti, ma in genere un "tipo di dati" si riferisce a un tipo introdotto utilizzando la parola chiave data, che ha costruttori su cui è possibile associare il modello. Questi sono chiamati anche i tipi di dati algebrici".

Basta 'tipo' è un termine più generale che comprende anche i tipi creati utilizzando newtype, tipi di funzione e così via.

+0

Quindi scriverebbe da solo Integer etc? – user997112

Problemi correlati