我有一个实际上运行良好的小型 DSL。当我说
import language.CWMWL
main = runCWMWL $ do
out (matrixMult, A, 1, row, 1 3 44 6 7)
thenrunCWMWL
是由 导出的函数language.CWMWL
。这会解析 experession 并采取一些行动。
我想要实现的是,有某种方法可以重复此操作,例如 1000 次,并让元组的第三个元素由数字 1 到 1000 组成。我自己的 DSL 还不够完整,无法做到这一点。最终我也想更改最后一个元素中的字符串。
如果没有准行情,是否有可能做到这一点?Quasi Quotes 是最好的工具吗?
我的 DSL 需要包含或需要包装哪些 binops /原语才能以优雅的方式实现这一点?