Haskell构造函数中的表达式

cclgggtu  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(153)

我必须创建一个函数,它接受一个表达式作为参数,比如sin 2.5或cos 1。有没有像FunctionExpression这样的构造函数类型?
我的老师给了我们一张工作表,他在上面写下了这个存在,但没有写下如何使用它...

cnjp1d6j

cnjp1d6j1#

是的,这个是存在的,它被称为模板Haskell。

$ ghci
GHCi, version 8.6.5: http://www.haskell.org/ghc/  :? for help
Prelude> :m +Language.Haskell.TH
Prelude Language.Haskell.TH> :set -XTemplateHaskell
Prelude Language.Haskell.TH> runQ [|sin 2.5|]
AppE (VarE GHC.Float.sin) (LitE (RationalL (5 % 2)))

相关问题