-2

给定表达式包含的变量的值列表,如何评估表达式?

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

例子:

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

1 回答 1

1

变量和 Expr 不是 Haskell 中的内置类型。

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

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

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

如果您喜欢更重量级的东西(并且牢牢掌握haskell和monadic编程),那么我建议您花时间学习使用Parsec http://www.haskell.org/haskellwiki/Parsec

于 2008-11-28T00:51:35.970 回答