假设我有一个名为的模块Item包含:
module Item
( routes ) where
routes = ["test1","test2","test3"]
Run Code Online (Sandbox Code Playgroud)
在Main我的模块中:
import qualified Item as I
routes = I.routes ++ ["test4", "test5"]
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能在编译时ghc动态地浏览所有导入的模块,如果它们导出名为routes的变量,则将其附加到Main模块中的routes变量.所以基本上是这样的:
import qualified Item as I
import qualified User as U --this one exports routes also
import qualified NoRoutes as NR --this one doesn't have any routes
routes = ["test4","test5"]
Run Code Online (Sandbox Code Playgroud)
并且在编译时,最终结果将是 routes = I.routes ++ U.routes ++ ["test4","test5"]
我不确定模板Haskell是否做了这样的事情.谢谢你的帮助!