2017-10-14 4 views
0

Dans le module Data.Word, il fournit des types comme Word8, Word16, etc.Est-il possible de créer des entiers WordN personnalisés?

Existe-t-il un moyen d'implémenter mon propre type Word, tel que Word4 (efficacement)?

+1

[Ici] (https://hackage.haskell.org/package/base-4.10.0.0/docs/src/GHC.Word.html#line-157) vous avez l'implémentation du type 'Word8'. Faites simplement un nouveau type 'Word4' avec des instances modifiées pour 4 bits. – Redu

+1

Je ne comprends pas vraiment pourquoi vous voulez implémenter un 'Word4'. Un ordinateur a une "taille de mot": le nombre de bits qui sont stockés dans la même "rangée" en mémoire. Tout ce qui est plus petit peut seulement être récupéré en récupérant la ligne entière, puis en masquant certains bits. Habituellement, ce n'est pas une bonne idée de travailler avec des objets plus petits, car cela ne fait qu'introduire plus de frais généraux: masquer le bruit qui l'entoure. Vous pouvez implémenter un 'Word4' pour rendre le masquage transparent (et augmenter l'efficacité de certaines opérations). Mais «Word4» sera probablement moins efficace que «Word8». –

+1

@WillemVanOnsem, Principalement parce que le programme que je fais fonctionne avec des unités de 4 bits à certains points, donc je voudrais un type de données pour cela. – user668074

Répondre