转换为混凝土Haskell是什么意思?

转换为混凝土Haskell是什么意思?,haskell,Haskell,我试图从第页了解haskell模板 我们将以这个例子: runQ [| 1 + 2 |] InfixE (Just (LitE (IntegerL 1))) (VarE GHC.Num.+) (Just (LitE (IntegerL 2))) 如您所见,表达式被计算为AST。 和 $( return (InfixE (Just (LitE (IntegerL 1))) (VarE (mkName "+")) (Just (LitE (IntegerL 2))))) 3 它评估AST,

我试图从第页了解haskell模板

我们将以这个例子:

runQ [| 1 + 2 |]
InfixE (Just (LitE (IntegerL 1))) (VarE GHC.Num.+) (Just (LitE (IntegerL 2)))   
如您所见,表达式被计算为AST。 和

$( return (InfixE (Just (LitE (IntegerL 1))) (VarE (mkName "+")) (Just (LitE (IntegerL 2)))))
3
它评估AST,对吗

问题是,Haskell中的每个表达式在编译之前都转换成AST吗

作者在文章中提到:

Ta da, you converted concrete Haskell to AST and then evaluated it.  
关于代码:

$( return (InfixE (Just (LitE (IntegerL 1))) (VarE (mkName "+")) (Just (LitE (IntegerL 2)))))
3 
作者对具体的哈斯克尔是什么意思

问题是,Haskell中的每个表达式在编译之前都转换成AST吗

是的,转换成某种形式的AST通常是编译的一部分

作者对具体的哈斯克尔是什么意思

具体部分指的是
1+2
,而不是AST