Mam problem ze zrozumieniem, jak działa UNPACK
w Haskell. Rozważmy, na przykład, następujące deklaracje danych:Co robi pragma UNPACK, w tym przypadku?
data P a b = P !a !b
data T = T {-# UNPACK #-} !(P Int Int)
Jak dataType T
być rozpakowane? Będzie to równoznaczne z
data T' = T' !Int !Int
lub będzie Int
e być dalej rozpakowaniu:
data T'' = T'' Int# Int#
? A co powiesz na:
data U = U {-# UNPACK #-} !(P Int (P Int Int))
?
Tak, nie ma sposobu, aby rozpakować 'T' do' T''' tj usunąć dwa poziomy konstruktorów? –
@Zeta Dzięki za edycję. Jak stworzyłeś te piękne diagramy? TikZ? Biblioteka "diagramów"? – Jubobs
@Jubobs Wygląda mi na GraphVis ... – MathematicalOrchid