使用模板haskell,有没有办法列出作用域中的所有函数?就像这样
allVarsInScope :: Q [Name]我要做的是获取所有以test_开头的导入函数的列表,并自动运行测试。
发布于 2012-08-02 17:59:09
遗憾的是,模板Haskell中没有这样的反射功能,但有解决方法。但是,在您自己编写类似的代码之前,我建议您尝试使用test-framework-th包,它已经对以case_开头的HUnit测试和以prop_开头的QuickCheck属性执行了此操作。
在幕后,这个包使用了language-haskell-extract包,它本质上是在模块上运行自己的解析过程来挑选出定义。这是一个有点老生常谈的解决方案,但它在实践中工作得很好。然而,它确实带来了相当多的依赖项,并且额外的解析过程会减慢构建速度。
https://stackoverflow.com/questions/11770449
复制相似问题