0 regex haskell functional-programming
有没有办法将Haskell语言中的表达式转换为类似树的格式,并从每个节点中提取信息.或者为给定的表达式生成所有可能的树?例如:添加5 3 这是树,其中,3和5是叶节点," 添加 "作为根.所以我需要的是分解上面的表达式,以便我可以对表达式做进一步的分析.例如:*知道我要"添加"的值是什么. *知道我在给定数字上执行的操作是什么(此处为"添加",也可能是"减法","乘法"等.)非常感谢您的帮助:)
你可以使用Template Haskell:
Language.Haskell.TH> runQ [e|3 + 5|]
InfixE (Just (LitE (IntegerL 3))) (VarE GHC.Num.+) (Just (LitE (IntegerL 5)))
Run Code Online (Sandbox Code Playgroud)
Language.Haskell.Exts> parse "3 + 5" :: ParseResult Exp
ParseOk (InfixApp (Lit (Int 3)) (QVarOp (UnQual (Symbol "+"))) (Lit (Int 5)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |