Dire que je donne les résultats suivants:Obtenir les noms de champs d'un enregistrement Haskell sous la forme d'une liste de chaînes?
data Rec = Rec {
alpha :: Int,
beta :: Double,
phi :: Float
}
sample = Rec 1 2.3 4.5
Je comprends modèle Haskell & la fonction reify
peut me faire les noms des champs de l'enregistrement. C'est-à-dire:
print $(f sample) --> ["alpha", "beta", "phi"]
Il est également indiqué que ceci peut être fait sans modèle Haskell. Quelqu'un peut-il fournir un exemple de mise en œuvre pour cela peut être accompli?
Vous pouvez également obtenir les noms de champs sans le modèle Haskell. – augustss
@augustss: Comment? De la magie noire 'Typable'? De toute façon, la plupart des utilisations que l'on pourrait mettre cette information serait un bon ajustement pour Template Haskell. – delnan
@delnan Vous pouvez utiliser 'Data.Data' ou vous pouvez simplement dériver' Show', montrer 'sample' et faire un peu d'analyse de cette chaîne. – augustss