72 votes

Qu'est-ce que Haskell Données.Typable?

Je ne peux pas trouver un tutoriel ou une bonne description de n'importe où. Quelqu'un peut-il me donner quelques conseils?

51voto

Don Stewart Points 94361

Data.Typeable est un encodage d'un bien connu (voir par exemple Harper) pour la mise en œuvre de retard (dynamique) type de vérification dans un langage statiquement typé -- à l'aide d'un universel type.

Un tel type de encapsule le code pour le type de vérification ne serait pas réussir, jusqu'à une phase ultérieure. Plutôt que de rejeter le programme que mal tapé, le compilateur passe pour le contrôle d'exécution.

Le style originaire de Abadi et coll., et développé pour Haskell par Cheney et Hinze comme un wrapper pour représenter tous les types de dynamiques, avec l' Typeable classe apparaissant dans le cadre de la SYB travail du SPJ et Lammel.


Référence


Même dans les livres de texte: les types de dynamiques (avec typable représentations) sont les langages statiquement typés avec un seul type, Harper ch 20:

enter image description here

19voto

larsmans Points 167484

C'est une bibliothèque qui permet, entre autres choses, les types d'affichage. Si un type a est déclarée Typeable, alors vous pouvez obtenir son nom à l'aide d' show $ typeOf xx est une valeur de type a. Il dispose également d' limitée de conversion de type.

(C'est un peu comme C++RTTI ou de langages dynamiques de réflexion.)

9voto

sclv Points 25335

L'une des premières descriptions que j'ai pu trouver un Data.Typeable-comme la bibliothèque pour Haskell est par John Peterson à partir de 1992: http://www.cs.yale.edu/publications/techreports/tr1022.pdf

La première "officielle" de papier que je sais de l'introduction de la réelle Data.Typeable bibliothèque est le premier de la Ferraille Votre passe-partout de papier à partir de 2003: http://research.microsoft.com/en-us/um/people/simonpj/Papers/hmap/index.htm

Je suis sûr qu'il ya beaucoup d'intervenant de l'histoire que quelqu'un ici peut cadrer avec!

5voto

Lambdageek Points 10928

Les Données.Typable classe est utilisé principalement pour la programmation générique dans la Ferraille Votre passe-partout (SYB) style. Voir aussi les Données.Données

L'idée est que SYB définit une collection combinators pour effectuer des opérations telles que l'impression, du comptage, de la recherche, substiting, etc de manière uniforme sur une variété de l'utilisateur créé types. L' Typeable typeclass fournit le nécessaire de plomberie.

Moderne GHC, vous pouvez juste dire deriving Data.Typeable lors de la définition de votre propre type afin de le doter des instances.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X