Dire che ho il seguente:Ottieni i nomi dei campi di un record Haskell come un elenco di stringhe?
data Rec = Rec {
alpha :: Int,
beta :: Double,
phi :: Float
}
sample = Rec 1 2.3 4.5
Capisco Template Haskell & la funzione reify
mi può ottenere i nomi dei campi del record. Ovvero:
print $(f sample) --> ["alpha", "beta", "phi"]
C'è anche una affermazione che questo può essere fatto senza Template Haskell. Qualcuno può fornire un'implementazione di esempio per questo può essere realizzato?
È possibile ottenere i nomi dei campi senza modello Haskell. – augustss
@augusts: come? Qualche magia nera 'tipizzabile'? In entrambi i casi, la maggior parte degli usi in cui si potrebbe mettere questa informazione sarebbe perfetta per Template Haskell. – delnan
@delnan Puoi usare 'Data.Data' o puoi semplicemente derivare' Show', mostrare 'sample' e fare un piccolo parsing di quella stringa. – augustss