如何在模板中"encode"这个简单的表达式Haskell?
How to "encode" this simple expression in template Haskell?
我有一个电话myFun @m @d
。现在我想为我的模板 Haskell 编写代码。我试试
let myFunCall = AppTypeE (VarE $ mkName "myFun") (AppT (VarT $ mkName "m") (VarT $ mkName "d"))
但它无效,因为我得到 myFun @(m d)
。
老实说,我什至不知道如何实现它。
与 Haskell 中的任何其他类型的函数应用程序一样,它通过参数关联参数。 IE。 myFun @m @d
是 (myFun @m) @d
。每个 @
都是自己的 AppTypeE
,即你需要
AppTypeE (AppTypeE (VarE $ mkName "myFun") ...) ...
我有一个电话myFun @m @d
。现在我想为我的模板 Haskell 编写代码。我试试
let myFunCall = AppTypeE (VarE $ mkName "myFun") (AppT (VarT $ mkName "m") (VarT $ mkName "d"))
但它无效,因为我得到 myFun @(m d)
。
老实说,我什至不知道如何实现它。
与 Haskell 中的任何其他类型的函数应用程序一样,它通过参数关联参数。 IE。 myFun @m @d
是 (myFun @m) @d
。每个 @
都是自己的 AppTypeE
,即你需要
AppTypeE (AppTypeE (VarE $ mkName "myFun") ...) ...