可能重複:
Symbolic simplification in Haskell (using recursion?)如何使用原始遞歸來簡化以下表達式?
的簡化我的想法是
0*e = e*0 = 0
1*e = e*1 = 0+e = e+0 = e-0 = e
和簡化不斷子表達式,如Plus (Const 1) (Const 2)
將變成Const 3
。我不希望將變量(或變量和常量)連接在一起:Var "st"
是與Var "s"
不同的變量。
例如simplify(Plus (Var "x") (Const 0))= Var "x"
這裏的語法有點不合適 - 你需要把parens放在例如(Plus(Const 0)(Expr x)) - 但是在正確的軌道上 – bdonlan 2009-05-07 05:29:18