Скажем, у меня есть следующее:
data Rec = Rec {
alpha :: Int,
beta :: Double,
phi :: Float
}
sample = Rec 1 2.3 4.5
Я понимаю, что Template Haskell и функция reify
могут дать мне имена полей записи. Это:
print $(f sample) --> ["alpha", "beta", "phi"]
Также есть утверждение, что это можно сделать без Template Haskell. Может ли кто-нибудь предоставить пример реализации для этого?
Typable
черная магия? В любом случае, большинство вариантов использования этой информации отлично подходят для Template Haskell. - person   schedule 10.12.2011Data.Data
, либо просто вывестиShow
, показатьsample
и выполнить небольшой анализ этой строки. - person augustss   schedule 11.12.2011