2008-11-28 185 views
-2

如何评估一个表达式,给出它包含的变量的值列表?如何评估表达式?

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

实施例:

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

回答

1

变量和Expr的不inbuild类型在Haskell。

如果您正在使用库或在大型程序的一部分上工作,它可能具有您以后的功能。

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

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

如果你想成为更重量级的人(并且对haskell和monadic编程有坚定的把握),那么我会建议你花时间学习使用Parsec http://www.haskell.org/haskellwiki/Parsec