Questions tagged «template-haskell»

1
使用模板Haskell获取关联的类型同义词
模板Haskell可以找出在类型类中声明的相关类型同义词的名称和/或声明吗?我曾期望reify会做我想做的事,但似乎并没有提供所有必要的信息。它适用于获取函数类型签名: % ghci GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help ... Prelude> -- I'll be inserting line breaks and whitespace for clarity Prelude> -- in all GHCi output. Prelude> :set -XTemplateHaskell Prelude> import Language.Haskell.TH Prelude Language.Haskell.TH> class C a where f :: a -> Int Prelude Language.Haskell.TH> putStrLn $(stringE . …

6
Template Haskell有什么不好的地方?
似乎Haskell社区经常将Template Haskell视为一种不幸的便利。很难准确地说出我在这方面所观察到的内容,但请考虑以下几个示例 回答用户应使用/避免使用哪些Haskell(GHC)扩展名的问题,将模板Haskell列在“丑陋(但必要)”下。 Haskell模板在“新值值的未装箱的向量”线程(库邮件列表)中考虑了一种临时/次等解决方案 经常批评Yesod过于依赖Template Haskell(请参阅博客文章以回应此观点) 我见过很多博客文章,其中人们使用Template Haskell做得很漂亮,可以实现更漂亮的语法,这在常规Haskell中是不可能实现的,并且大大减少了样板。那么,为什么以这种方式看不起模板Haskell?是什么使它不受欢迎?在什么情况下应避免使用Haskell模板,为什么?

1
使用TemplateHaskell列出名称空间中的所有名称
我想要一个TemplateHaskell函数variablesInScope :: Q [Name],该函数返回Name范围中所有变量的列表。TemplateHaskell显然具有可用的信息,以实现诸如reify :: Name -> Q Info和的功能lookupValueName :: String -> Q (Maybe Name)。 我想要的功能是否存在于某个地方而我只是忽略了它?还是可以通过某种方式轻松构建?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.