J'ai de la difficulté à comprendre comment fonctionne UNPACK
à Haskell. Tenir compte, par exemple, les déclarations de données suivantes:Que fait le pragma UNPACK, dans ce cas?
data P a b = P !a !b
data T = T {-# UNPACK #-} !(P Int Int)
Comment va type_données T
être déballés? Sera-ce équivalent à
data T' = T' !Int !Int
ou seront les Int
s être plus décompressée:
data T'' = T'' Int# Int#
? Qu'en est-il de
data U = U {-# UNPACK #-} !(P Int (P Int Int))
?
Donc, il n'y a aucun moyen de déballer '' T' à T''' dire supprimer deux niveaux de constructeurs? –
@Zeta Merci pour l'édition. Comment avez-vous produit ces beaux diagrammes? TikZ? La bibliothèque 'diagrammes'? – Jubobs
@Jubobs Ressemble à GraphVis pour moi ... – MathematicalOrchid