gpt4 book ai didi

haskell - 模板 Haskell 声明名称作为字符串

转载 作者:行者123 更新时间:2023-12-02 15:06:26 24 4
gpt4 key购买 nike

假设我有这个:

f x = x + 1

tt2 name o = sequence [valD (varP (mkName name)) (normalB [| f $(varE o) |]) []]

我想将 tt2 转换为 tt:

tt name o = [d| ??? = f $(varE o) |]

我不知道 ??? 应该是什么。这可能是因为我还不明白 TH 是如何工作的。有人可以帮忙吗?

最佳答案

您正在尝试拼接名称或模式。不幸的是,这是不可能的。 Template Haskell 仅允许拼接表达式、类型和声明,因此您必须像在原始代码中一样手动执行此操作。

参见GHC #1476由于某些原因不允许图案拼接。

关于haskell - 模板 Haskell 声明名称作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16332124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com