Decir que tengo el siguiente:¿Obtiene los nombres de campo de un registro Haskell como una lista de cadenas?
data Rec = Rec {
alpha :: Int,
beta :: Double,
phi :: Float
}
sample = Rec 1 2.3 4.5
entiendo Plantilla Haskell & la función reify
me puede conseguir nombres de los campos del registro. Es decir:
print $(f sample) --> ["alpha", "beta", "phi"]
También se puede afirmar que esto se puede hacer sin Template Haskell. ¿Puede alguien proporcionar un ejemplo de implementación para esto?
Puede obtener los nombres de los campos sin la plantilla Haskell también. – augustss
@augustss: ¿Cómo? ¿Alguna magia negra "Typable"? De cualquier manera, la mayoría de los usos a los que se podría aplicar esta información encajarían perfectamente con Template Haskell. – delnan
@delnan Puede usar 'Data.Data' o simplemente puede derivar' Show', show 'sample' y hacer un pequeño análisis sintáctico de esa cadena. – augustss