2008-11-28 206 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