簡體   English   中英

使用模板haskell獲取范圍內的所有函數/值

[英]Get all functions/values in scope with template haskell

使用模板haskell,是否可以列出作用域中的所有功能? 就像是

allVarsInScope :: Q [Name]

我要嘗試執行的操作是獲取以test_開頭的所有導入函數的列表,並自動運行測試。

可悲的是,Template Haskell中沒有這種反射功能,但是有解決方法。 但是,在您自己編寫類似代碼之前,建議您嘗試使用test-framework-th程序包,該程序包已經對以case_開頭的HUnit測試以及以prop_開頭的case_屬性進行了prop_

在后台,該程序包使用language-haskell-extract程序包,該程序包實際上在模塊上運行其自己的解析過程以選擇定義。 這是一個有點棘手的解決方案,但在實踐中效果很好。 但是,它確實帶來了大量的依賴關系,並且額外的解析過程可能會減慢您的構建速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM