gpt4 book ai didi

templates - 从模板 Haskell 代码生成最终代码

转载 作者:行者123 更新时间:2023-12-04 21:18:21 25 4
gpt4 key购买 nike

问题

是否可以从包含 Template Haskell 函数的代码中生成“纯”Haskell 代码?

我想获得扩展所有 Haskell 模板的引号和拼接的代码? (将它输入另一个 Haskell 编译器(Haste),它还不支持 Template Haskell。)

示例

模块元组复制:

tupleReplicate n = do 
id <- newName "x"
return $ LamE ([VarP id]) (TupE $ replicate n $ VarE id)

主要的:
main :: IO ()
main = do
print $(tupleReplicate 3) "x"
return ()

可以扩展为:
main :: IO ()
main = do
print (\x->(x,x,x)) "x"
return ()

最佳答案

可以在这里找到使用 Template Haskell pretty-print 的解决方案:
Preferred method for viewing code generated by Template Haskell

还有其他工具,这里回答了一个问题:
How to create a non-TH package from code generated using Template Haskell?
-ddump-splices 的结果并非总是有效的 haskell 代码,它仅适用于程序员。

关于templates - 从模板 Haskell 代码生成最终代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711366/

25 4 0