给定表达式包含的变量的值列表,如何评估表达式?
eval::[(Variable,Integer)]->Expr->Integer
例子:
eval[("x",2), ("y",4)](Mult(Plus(Var "x") (Const))(Var "y"))= 12
给定表达式包含的变量的值列表,如何评估表达式?
eval::[(Variable,Integer)]->Expr->Integer
例子:
eval[("x",2), ("y",4)](Mult(Plus(Var "x") (Const))(Var "y"))= 12
变量和 Expr 不是 Haskell 中的内置类型。
如果您正在使用库或处理较大程序的一部分,那么它可能具有您所追求的功能。
如果您自己定义了这些类型,那么由您决定。
如果这是针对课程作业,那么您可能想阅读有关语法和解析技术的内容。尝试将字符串分解为标记并构建可以评估的符号表示。如果您还没有找到它http://www.zvon.org/other/haskell/Outputglobal/index.html是一个很好的参考站点。
如果您喜欢更重量级的东西(并且牢牢掌握haskell和monadic编程),那么我建议您花时间学习使用Parsec http://www.haskell.org/haskellwiki/Parsec。