我该如何评估表达式?

时间:2008-11-28 00:46:28

标签: haskell functional-programming lambda-calculus

如果给出包含它所包含变量的值列表,我该如何计算表达式?

eval::[(Variable,Integer)]->Expr->Integer

示例:

eval[("x",2), ("y",4)](Mult(Plus(Var "x") (Const))(Var "y"))= 12

1 个答案:

答案 0 :(得分:1)

在Haskell中,Variable和Expr不是inbuild类型。

如果您正在使用图书馆或处理较大程序的一部分,那么它可能具有您所追求的功能。

如果您自己定义了这些类型,那么由您决定。

如果这是课程作业,那么您可能想要了解语法和解析技巧。尝试将字符串分解为标记并构建可以评估的符号表示。如果您还没有找到它http://www.zvon.org/other/haskell/Outputglobal/index.html是一个很好的参考网站。

如果你进入更重量级的东西(并且坚定地控制haskell和monadic编程)那么我会建议花时间学习使用Parsec http://www.haskell.org/haskellwiki/Parsec