Tag: 模板哈斯克尔

使用TemplateHaskell列出名称空间中的所有名称

我想要一个TemplateHaskell函数variablesInScope :: Q [Name] ,它返回范围内所有variables的Name的列表。 TemplateHaskell显然有这个信息可用来实现像reify :: Name -> Q Info和lookupValueName :: String -> Q (Maybe Name)这样的函数。 我想要的function是否存在,我只是忽略了它? 或者可以很容易地build立?

关于模板哈斯克尔有什么不好的?

Haskell社区经常将Haskell看作是一种不幸的方便。 在这方面,我很难说出我所观察到的,但考虑这几个例子 模板Haskell在“The Ugly(but necessary)”中列出,以回答用户使用/避免哪些Haskell(GHC)扩展的问题? 模板Haskell在newtype的值线程(库邮件列表) 的Unboxed Vectors中考虑了临时/ Yesod经常因为过分依赖Template Haskell而受到批评(参见博客文章以回应这种情绪) 我看过各种博客文章,人们使用Haskell模板做了非常整洁的事情,使得在Haskell中经常不可能的漂亮的语法,以及巨大的样板化。 那么为什么模板Haskell被这样看呢? 是什么让它不受欢迎? 在什么情况下应该避免模板哈斯克尔,为什么?